如何从网络解决方案中间和域证书文件为 Azure 网站创建 PFX 证书导出?
Posted
技术标签:
【中文标题】如何从网络解决方案中间和域证书文件为 Azure 网站创建 PFX 证书导出?【英文标题】:How do I create PFX certificate export for Azure Website from Network Solutions intermediate and domain certificate files? 【发布时间】:2015-01-08 07:15:01 【问题描述】:我从 Network Solutions 网站购买了 SSL 证书。我收到了 4 个 .crt 文件。我相信其中三个是中间证书,第四个是我的网站域名的实际证书。
我尝试使用 DigiCert 实用程序导入实际证书。它在三个中间文件上出错。它允许我导入域证书并导出 PFX 文件,但这会在浏览器中引发警告 - 未提供颁发者链。
我使用运行 Windows Server 2008 R2 的域控制器在 MMC 中导入中间证书颁发机构,然后使用域证书在 IIS 完成证书请求。证书的证书路径现在看起来正确,但 PFX 文件的 MMC 证书导出向导选项显示为灰色 - 已禁用。
我使用 MMC 证书模板管理单元创建 Web 服务器模板的副本,其中请求处理设置允许导出私钥已选中。在 IIS 中完成证书请求时似乎没有使用此模板,因为 PFX 导出仍处于禁用状态。 Complete Certificate Request 不提供选择要使用的证书模板。
我尝试使用证书详细信息,复制到文件选择 P7B 并在证书路径中包含所有证书。完成向导显示导出密钥设置为否并且无法更改它。保存文件然后双击打开它允许导出但再次禁用 PFX 选项。
我缺少的拼图是什么?
【问题讨论】:
从您的帖子中不清楚您在做什么以及您想要完成什么。只是一组不相关的步骤。您使用 DigiCert 实用程序的目的是什么?您出于什么目的使用 IIS 证书请求控制? 很抱歉给您带来了困惑。我正在尝试向 Azure 网站添加 SSL 证书。 Azure 网站需要 PFX 格式证书。我从 Network Solutions 购买了 SSL 证书。 Network Solutions 提供了 3 个中间证书和 1 个域证书 - AddTrustExternalCARoot.crt、DV_NetworkSolutionsDVServerCA2.crt、DV_USERTrustRSACertificationAuthority.crt 和 mydomain.com.crt。 Google 建议有办法将四个 crt 文件转换为 PFX 文件。我试图听从他们的建议。 这些文件 (*.crt) 不包含私钥,您无法从中生成 PFX。您需要先获取私钥。在哪儿?这取决于您如何申请证书。它应该在您计算机上的某个位置。您可以打开证书存储并检查证书 MMC 中的 LocalMachine\Request 和 CurrentUser\Request 文件夹中是否有任何内容? 两天前,我使用 IIS 创建了一个新的证书请求。我用它来请求 Network Solutions 重新颁发证书,以确保一切都在同一台机器上完成。我必须经历过两次,因为 MMC 证书(本地计算机)下有两个证书注册请求,而证书 - 当前用户下没有。这些请求中确实有私钥。我从 Network Solutions 收到了新的 crt 文件,用 MMC 导入了三个中间证书,然后再次使用 IIS 完成了第 4 个 crt 文件的证书请求。 同样,完成的证书具有正确的路径,但显然仍然没有密钥,因为我无法导出 PFX。是否应该将请求的私钥与从 Network Solutions 导入的 crt 文件合并?谢谢你的帮助。加密似乎是它自己的领域。 【参考方案1】:您遇到的问题是 Network Solutions 颁发的实际 SSL 证书。我在这方面与 Microsoft 合作了一段时间,但 Network Solutions 拒绝相信这是一个问题。
Azure 网站在向客户端颁发证书链时依赖 AIA(授权信息访问)属性来确保正确性。在 Network Solutions 颁发的新 SHA-2 证书中,这是 AIA 元素中的值
[1]授权信息访问 访问方法=认证机构颁发者 (1.3.6.1.5.5.7.48.2) 备用名称: 网址=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) 备用名称: 网址=http://www.netsolssl.com/NetworkSolutions_CA.crt [2]权限信息访问 访问方法=在线证书状态协议 (1.3.6.1.5.5.7.48.1) 备用名称: URL=http://ocsp.netsolssl.com
此 URL 有效,因此您的客户端可以成功加载证书链。
因此,唯一的解决方法是网络解决方案将 NetworkSolutionsOVServerCA2.crt 文件放在他们的证书上说的位置。我已经使用 NetSol 打开了许多技术支持票证,并尝试通过其他一些方法来传达这个问题意味着,但永远无法联系到承认问题的人,或者愿意将其推向具有足够专业知识来解决问题的人。
【讨论】:
啊,互联网的力量。好像网络解决方案阅读了这个网站。经过3个月的战斗,它现在神奇地出现在了它的正确位置。您的证书现在应该可以在 Azure 中正常工作了。【参考方案2】:我的证书存储区出了点问题。我使用 MMC 删除了所有相关的证书请求、中间证书和已完成的证书。然后我创建了一个新的证书请求并从 Network Solutions 获得了重新颁发。然后我使用 MMC 将中间 .crt 文件导入中间证书颁发机构。然后我使用 IIS 完成证书请求。然后,我终于能够使用 Yes,Export the private key and Personal Information Exchange 导出 MMC Personal 证书,如果可能的话,在证书路径中包含所有证书并导出所有扩展属性。唉,即使从上传到 Azure 的 PFX 文件中导出的 OpenSSL PEM 文件清楚地显示了链中的四个证书,Azure 网站仍然报告没有提供颁发者链!现在我对 Azure 感到不满,但这是另一个话题。我的投票显然是支持那个说“过度设计!它不必这么复杂!”的人。天啊,他们在想什么?
【讨论】:
你解决过这个问题吗?我们有同样的问题。我们的 azure 网站说没有发行者链。 从未解决它。 Azure 网站有自己的 SSL 证书,这种证书适用于 *.azurewebsites.net。我现在正在使用它,这意味着我不能使用我们为该站点购买的域进行 SSL。网络解决方案 SSL 证书是一种浪费,他们需要支持资金来查看问题,但不能保证他们会修复它。似乎 Azure 不喜欢证书链接在一起的方式,但我不得不转向其他事情。当我回到它时,我会尝试找到一个 SSL 供应商,可以清楚地证明它可以在 Azure 网站上运行。以上是关于如何从网络解决方案中间和域证书文件为 Azure 网站创建 PFX 证书导出?的主要内容,如果未能解决你的问题,请参考以下文章