Azure https与pfx文件

时间:2011-07-14 20:16:36

标签: ssl https azure ssl-certificate

我正在尝试为我的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的证书不包含私钥。

4 个答案:

答案 0 :(得分:6)

你是如何将.p7b转换为.cer的?您的问题是cer文件不包含私钥信息,因此当您将其导出为pfx时,它没有使用SSL所需的信息。

转换为pfx的最简单方法可能是将证书导入本地计算机(使用certmgr.msc),然后导出它,确保选择“是,导出私钥”选项。


编辑:经过GregS评论之后做了一些更多的研究,问题仍然是一样的,你是pfx没有使用SSL所需的私钥,但原因实际上是.p7b文件没有私钥开头。您需要使用其他证书。已有question related to this on server fault

答案 1 :(得分:2)

我在尝试为Azure生成.pfx时遇到了同样的问题。 p7b证书由Thawte生成。经过一些研究,我能够使它发挥作用。

  1. 从IIS生成CSR(证书请求)。它可能是您的本地IIS。 https://search.thawte.com/support/ssl-digital-certificates/index?page=content&id=SO9171

  2. 根据CSR生成证书。 CA负责这一点。如果您要生成自签名证书,您也可以从ISS执行此操作。这很重要,因为当您导入它时(步骤3),IIS将验证证书是否在那里生成。

  3. 将证书导入本地IIS。它必须是.cer文件。只需打开p7b文件,您就会看到证书链。将域证书导出到.cer文件。然后,您可以使用它将其导入IIS。 https://search.thawte.com/support/ssl-digital-certificates/index?page=content&id=SO10664

  4. 从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以防万一。