我正在尝试为我的azure服务创建 https 端点。我收到了一个 p7b 文件,我将其转换为 cer 文件。从 cer 我可以使用几行c#转换为 pfx 。
var cert = new X509Certificate2(@"certpath", "
var bytes = cert.Export(X509ContentType.Pfx, "password");
File.WriteAllBytes(@"certpath\cert.pfx", bytes);
现在当我将证书上传到azure时,一切似乎都没问题,我复制指纹并尝试使用新的指纹升级作为终点的一部分,我在azure中出现错误。
与HTTPS输入端点“endpointName”关联的指纹3FA490D1D4957942CD2ED545F6E823D0008796EA2的证书不包含私钥。
答案 0 :(得分:6)
你是如何将.p7b转换为.cer的?您的问题是cer文件不包含私钥信息,因此当您将其导出为pfx时,它没有使用SSL所需的信息。
转换为pfx的最简单方法可能是将证书导入本地计算机(使用certmgr.msc),然后导出它,确保选择“是,导出私钥”选项。
答案 1 :(得分:2)
我在尝试为Azure生成.pfx时遇到了同样的问题。 p7b证书由Thawte生成。经过一些研究,我能够使它发挥作用。
从IIS生成CSR(证书请求)。它可能是您的本地IIS。 https://search.thawte.com/support/ssl-digital-certificates/index?page=content&id=SO9171
根据CSR生成证书。 CA负责这一点。如果您要生成自签名证书,您也可以从ISS执行此操作。这很重要,因为当您导入它时(步骤3),IIS将验证证书是否在那里生成。
将证书导入本地IIS。它必须是.cer文件。只需打开p7b文件,您就会看到证书链。将域证书导出到.cer文件。然后,您可以使用它将其导入IIS。 https://search.thawte.com/support/ssl-digital-certificates/index?page=content&id=SO10664
从IIS导出证书到.pfx。此时,证书包含IIS添加的适当私钥。导出时,IIS将要求您输入密码。 https://search.thawte.com/support/ssl-digital-certificates/index?page=content&id=SO10034
答案 2 :(得分:2)
我和你曾经遇到过完全相同的问题,这就是故事:
答案 3 :(得分:1)
从godaddy获取SSL证书的pfx文件。详细信息here以防万一。