繁体   English   中英

上传到Azure网站时,不在X509Store中的SSL证书

[英]SSL Certificate not in X509Store when uploaded to Azure Website

我使用管理门户上载证书将.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购买了证书,它似乎已正确上传,并且显示在浏览器的“HTTPS”栏中(在Chrome中)。

任何帮助都会非常感激,因为我在这里不知所措。

更新

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

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

这似乎适用于Azure-Websites而不使用Web角色。

谢谢

我遇到过类似的问题,下面是适合我的解决方案。

解:

一旦您通过Azure门户上传了证书,您需要添加名为WEBSITE_LOAD_CERTIFICATES的appsetting(也通过门户网站),并将此值设置为您上载的证书的指纹。 如果您愿意,这可以是以逗号分隔的多个指纹列表,甚至*可以加载所有上传的证书

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

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

store.Open(OpenFlags.ReadOnly);

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

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

我最近不得不为Azure网站完成这个过程,所以这些是我为了节省时间而尝试的顺序。

您可以做什么来调试?

首先,远程进入机器并查找证书是否存在。 您可以使用mmc.exe找到并添加证书管理单元。 请参阅此处获取完整说明。

对于Azure网站,您必须通过进入Azure管理门户启用远程桌面,然后在部署了您的网站的VM中创建会话。

部署证书

如果证书不存在,则必须部署它。 对于测试,您可以通过使用远程会话进入VM并导入证书来手动执行此操作。

对于Web站点,如果您希望自动部署它,则必须更新该角色的服务定义文件 ,以确保正确部署证书。 另外,请记住,如果您希望您的角色能够使用证书,则应将您的证书上传为“服务证书”而不是“管理证书”。 如果您使用的是Visual Studio,则还可以将其添加到项目中并进行部署。

权限

此外,(特别是如果您已在VM上手动部署证书),则需要检查IIS是否具有访问证书的权限。 页面说明了部署证书以及如何提供适当的权限。 如果您的证书包含在部署包中,那么这不是必需的,因为Azure部署将负责处理它。

仅供参考:它在本地运行,因为证书已存在于您的代码正在查看的商店中,并且没有任何内容可以删除证书(除非您手动执行)以验证如果再次在本地部署,则将部署证书再次(假设您在本地和Azure云上的部署完全相同)。 在许多情况下,本地环境和Azure云环境可能不同(不幸的是),因为Azure将提供干净的VM,并且所有内容都需要正确部署。 在本地机器上,我们有很多“剩菜”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM