背景:我需要在Windows Azure上测试WebRole的https端点。为此,我需要上传自签名证书,将证书的指纹添加到WebRole的配置中,最后将端点与配置的证书相关联。
我使用makecert.exe
创建了一个自签名证书,该证书可通过Visual Studio命令提示符获得。我使用了以下命令:
makecert.exe -r -pe -n "CN=test.cloudapp.net" -sky exchange -ss my -len 2048 test.pfx
命令成功,我可以将证书文件上载到Windows Azure托管服务。但部署WebRole失败,出现以下错误:
带有指纹6AB的证书...与HTTPS输入相关联 端点Endpoint2不包含私钥。
我必须从我的商店导出证书,然后选择包含私钥并提供密码。如果我上传此导出的证书文件并使用其指纹,则部署成功。
我想创建一个包含私钥的证书文件,而不先将证书保存到任何商店并从商店导出。可以使用makecert.exe
吗?
答案 0 :(得分:14)
要创建证书而不将其保存到任何商店,您需要使用 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文件(包含私钥)