1

我们使用 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.

有什么建议吗?

4

2 回答 2

2

问题在于,您从 openssl 获得的 .key 和 signtool 和 pkv2pfx 所需的 .pkv 显然不是一回事。您必须使用此pvk实用程序从 openssl 输出转换 .key。使用简单,生成微软工具需要的pvk文件。

于 2014-09-25T14:31:03.357 回答
0

我在使用 pvk2pfx 时遇到“错误的文件格式”错误时遇到了这个问题,并且接受的答案的死链接没有让我进步。

因此,假设这里的最终目标是最终得到一个 pfx,无论用于完成此任务的特定工具如何,我都使用了 OpenSSL:

  1. 从https://slproweb.com/products/Win32OpenSSL.html下载安装程序
  2. 安装 Open SSL
  3. 打开 Win64 打开 SSL 命令提示符
  4. 运行以下命令:E:\Path\To\Cert\> openssl pkcs12 -export -out MyOutput.pfx -inkey MyPrivateKey.pvk -in MyCertificate.cer

这将使用 MyPrivateKey.pvk 和 MyCertificate.cer 文件并生成 MyOutput.pfx 文件。

希望这可以帮助其他迷失的灵魂。

于 2021-04-22T09:54:21.380 回答