我可以使用makecert.exe为Windows Azure创建自签名SSL证书吗?

8
背景: 我需要测试 Windows Azure 上 WebRole 的 https 端点。为此,我需要上传一个自签名证书,将该证书的 thumbprint 添加到 WebRole 的配置中,最后将端点与已配置的证书关联。

我使用 Visual Studio 命令提示符中提供的 makecert.exe 创建了一个自签名证书。我使用以下命令:

makecert.exe -r -pe -n "CN=test.cloudapp.net" -sky exchange -ss my -len 2048 test.pfx

命令成功执行,我可以将证书文件上传到Windows Azure托管服务。但是WebRole的部署失败,显示以下错误:

与HTTPS输入端点Endpoint2关联的拇指印为6AB...的证书不包含私钥。

我必须从存储库中导出带有私钥且提供密码的证书。如果我上传此导出的证书文件并使用其拇指印,则部署成功。 我想创建一个包含私钥的证书文件,而无需首先将证书保存到任何存储库中并从存储库中导出它。这是否可能使用makecert.exe
1个回答

15

要创建一个不保存到任何存储区的证书,您需要使用 pvk2pfx.exe (可以通过 Visual Studio 命令提示符获得)。

它的工作方式如下:

makecert.exe -sv CertKey.pvk -n "CN=My Azure Certificate" CertKey.cer
pvk2pfx.exe -pvk CertKey.pvk -spc CertKey.cer -pfx MyPFX.pfx -po yourPasswordHere

运行makecert.exe会要求您为私钥设置密码。您需要将该密码输入pvk2pfx.exe命令的-po参数中。

最终,您将拥有一个名为 MyPFX.pfx 的pfx文件(包含私钥)。


1
我在使用pvk2pfx生成的PFX文件时遇到了一些问题,Azure无法接受它。解决方法是将证书导入Windows证书存储中,然后从那里重新导出。 - Juha Palomäki
1
如果有人想知道,完成后您可以在Azure管理控制台上找到证书的Thumbprint。 - Rob Church
通过双击 .cer 文件或使用 @RobChurch 进行操作。 - ahmet alp balkan
1
似乎您必须使用 -po 选项才能使 pvk2pfx 与 Azure 正常工作。文档中说如果没有 -po,它会使用 .pvk 中的一个,但我从未能够让 Azure 接受 .pfx,直到我明确使用了 -po 选项。 - Mikee
使用以这种方式创建的证书时,我收到消息“SignTool错误:签名者的证书无法用于签名。” 我做错了什么吗? - A.bakker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接