我们使用openssl创建了证书请求和私钥,如下所示
req -out CSR.csr -new -newkey rsa:2048 -nodes -keyout privateKey.key
我们发送了CSR,经过验证后,我们找回了spc文件。现在我想用signtool签署我的代码。显然,我需要生成一个结合了spc和私钥的pfx文件,所以我调用
pvk2pfx.exe -pvk file.pvk -spc file.spc -pfx cert.pfx
此程序要求输入密码,但我们从未在私钥上设置密码。我们只是按了回车。如果我们尝试在对话框中按Enter键,我们就会
ERROR: Password incorrect.
(Error Code = 0x80070056)
如果我们尝试任何其他文字,我们会得到
ERROR: Bad file format.
(Error Code = 0x8007000b)
我也尝试过使用signtool和向导,它显然接受了spc和pvk的分离。当我指定私钥(来自磁盘,CSP:Microsoft强大的加密提供程序,提供程序类型RSA Full)时,我得到了
The signing certificate and private key do not match
or do not contain valid information.
有什么建议吗?
答案 0 :(得分:2)
问题在于,显然你从openssl获得的.key和signtool和pkv2pfx所需的.pkv是不一样的。您必须使用此pvk实用程序从openssl输出转换.key。它使用起来很简单,并生成微软工具所需的pvk文件。
答案 1 :(得分:0)
我在使用 pvk2pfx 时遇到“错误的文件格式”错误时遇到了这个问题,并且接受的答案的死链接没有让我进步。
因此,假设这里的最终目标是以 pfx 结束,无论用于实现此目的的特定工具如何,我都使用了 OpenSSL:
E:\Path\To\Cert\> openssl pkcs12 -export -out MyOutput.pfx -inkey MyPrivateKey.pvk -in MyCertificate.cer
这将使用 MyPrivateKey.pvk 和 MyCertificate.cer 文件并生成一个 MyOutput.pfx 文件。
希望这能帮助其他迷失的灵魂。