如何从网络解决方案中间文件和域证书文件为Azure网站创建PFX证书导出



我从网络解决方案网站购买了SSL证书。我收到了4.crt文件。我相信其中三个是中间证书,第四个是我网站域名的实际证书。

我尝试使用DigiCert实用程序导入实际证书。它在三个中间文件上出错。它允许我导入域证书并导出PFX文件,但这会在浏览器中引发警告-没有提供颁发者链。

我使用运行Windows Server 2008 R2的域控制器在MMC中导入中间证书颁发机构,然后使用域证书导入IIS完整证书请求。证书的证书路径现在看起来是正确的,但PFX文件的MMC证书导出向导选项显示为灰色-禁用。

我使用MMC证书模板管理单元创建了Web服务器模板的副本,并选中了"请求处理"设置"允许导出私钥"。在IIS中完成证书请求时似乎未使用此模板,因为PFX导出仍处于禁用状态。Complete Certificate Request不提供选择要使用的证书模板。

我尝试使用证书详细信息,"复制到文件"选择P7B并在证书路径中包含所有证书。完成向导后,将显示"导出密钥"设置为"否",并且无法更改它。保存文件,然后双击打开它允许导出,但PFX选项再次被禁用。

我缺的那块拼图是什么?

您遇到的问题是网络解决方案颁发的实际SSL证书。我曾与微软合作过一段时间,但网络解决方案公司拒绝相信这是一个问题。

Azure网站在向客户端颁发证书链时,依赖AIA(授权信息访问)属性才能正确。在Network Solutions发布的新SHA-2证书中,这是AIA元素中的值

[1] 权限信息访问访问方法=证书颁发机构颁发者(1.3.6.1.5.5.7.48.2)备选名称:URL=http://crt.netsolssl.com/NetworkSolutionsOVServerCA2.crt[2] 权限信息访问访问方法=联机证书状态协议(1.3.6.1.5.5.7.48.1)备选名称:URL=http://ocsp.netsolssl.com

如果注意到第一个元素的URL,那么它应该指向链中的第一个中间证书。然而,这个url抛出了一个404。相比之下,这里是他们的一个旧的SHA-1证书的AIA值

[1] 权限信息访问访问方法=证书颁发机构颁发者(1.3.6.1.5.5.7.48.2)备选名称:URL=http://www.netsolssl.com/NetworkSolutions_CA.crt[2] 权限信息访问访问方法=联机证书状态协议(1.3.6.1.5.5.7.48.1)备选名称:URL=http://ocsp.netsolssl.com

此URL是有效的,因此,您的客户端可以成功加载证书链。

因此,唯一的解决方案是Network解决方案将NetworkSolutionsOVServerCA2.crt文件放在他们的证书所说的位置。我已经向NetSol打开了许多技术支持票证,并试图通过多种其他方式传达这个问题,但永远无法联系到承认这个问题的人,或者愿意把它交给有足够专业知识来解决这个问题的人。

我的证书存储中出现了一些问题。我使用MMC删除了所有相关的证书请求、中间证书和已完成的证书。然后我创建了一个新的证书申请,并从网络解决方案获得了重新颁发的证书。然后我使用MMC将中间.crt文件导入到中间证书颁发机构。然后我使用IIS来完成证书申请。然后,我终于能够使用"是"从MMC个人证书导出,导出私钥和个人信息交换,如果可能的话,在证书路径中包括所有证书,并导出所有扩展属性。遗憾的是,Azure网站仍然报告没有提供颁发者链,尽管从上传到Azure的PFX文件导出的OpenSSL PEM文件清楚地显示了链中的四个证书!现在我对Azure感到不满,但那是另一个话题。我的投票显然支持那个人,他说:"过度设计!不必这么复杂!"。Sheesh,他们在想什么?

最新更新