c# - 上传到 Azure 网站时 SSL 证书不在 X509Store 中

标签 c# ssl-certificate azure-web-app-service

我已使用管理门户上传证书将 .pfx 安装到我的 Azure 网站。

我现在尝试使用以下代码访问它们:

X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
certificateStore.Open(OpenFlags.ReadOnly);
var certificates = certificateStore.Certificates;

StringBuilder sb = new StringBuilder();

foreach (var certificate in certificates)
{
   sb.AppendLine(certificate.Subject);                
}

当发布到 Azure 时,列出了一堆证书,但没有列出我上传的证书。

列出的证书在这里:

CN=WW.azurewebsites.windows.net, OU=CIS(RD), O=Microsoft
CN=FullOSTransport
CN=client.geo.to.stamp.azurewebsites.windows.net
CN=ma.waws-prod-am2-005.azurewebsites.windows.net, OU=OrganizationName, O=Microsoft,     
L=Redmond, S=WA, C=US
CN=FullOSTransport
CN=FullOSTransport

我从 Verisign 购买了证书,它似乎已正确上传并且确实出现在浏览器(在 Chrome 中)的“HTTPS”栏中。

任何帮助将不胜感激,因为我在这里不知所措。

更新

看起来我们需要转换为云服务才能使上述代码正常工作。但是我可以按照此处的建议将证书添加到我的 app_data 文件夹吗?

http://blog.tylerdoerksen.ca/2015/11/29/pfx-certificate-files-and-azure-web-apps/

这似乎适用于不使用 Web 角色的 Azure 网站。

谢谢

最佳答案

我遇到过类似的问题,下面是对我有用的解决方案。

解决方案:

通过 Azure 门户上传证书后,您需要添加一个名为 WEBSITE_LOAD_CERTIFICATES 的应用程序设置(也通过门户),并将其值设置为上传证书的指纹。如果需要,这可以是多个指纹的逗号分隔列表,甚至可以 * 加载所有上传的证书

然后使用以下代码加载您的证书。

var store = new X509Store(StoreName.My, StoreLocation.CurrentUser);

store.Open(OpenFlags.ReadOnly);

var certs = store.Certificates.Find(X509FindType.FindByThumbprint, YOUR_THUMBPRINT, false);

关于c# - 上传到 Azure 网站时 SSL 证书不在 X509Store 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24107374/

相关文章:

azure - Web 应用程序下 Azure 中允许的最大 webJobs

c# - 升级到 .net core 3.0 后报错“找不到网页地址为 : https://localhost:44374/"的网页

c# - COM 互操作、隔离和排除重复引用

c# - 如何使用HtmlAgilityPack检查它是否是404错误页面(页面不存在)

apache - Apache 上特定 URL 的 SSL 证书

azure - 如何按计划重新启动 Azure Web App

asp.net - 在 Azure 网站上启用 gzip 压缩

c# - 如何为 RadioButton 组注册事件?

ios - 为什么我在 iOS 9.3.2 和 10.0.1 的 google-analytics 中出现 SSLError?

azure - 多域 SSL 证书和 Windows Azure