如何从网络解决方案中间和域证书文件为 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 证书导出?的主要内容,如果未能解决你的问题,请参考以下文章

使用 azure 上的区域和域的 Mvc 起始页

通过 azure devops 管道上传 .pfx 证书

将新的受信任 CA 添加到 Azure 上的证书颁发机构证书存储区

SSL证书和域访问异常

Azure 将 ip 限制为点到站点 ***

Azure 的 SSL 证书