我尝试使用以下命令在 x64 上使用 OpenSSL v3.0.1 生成私钥和证书:
"C:\Program Files\OpenSSL\bin\openssl.exe" req -x509 -sha256 -days 7300 -newkey rsa:2048 -keyout ProductPrivate.key -out ProductCertificate.crt
然后我尝试使用以下命令将密钥和证书打包到单个 PFX 文件中:
"C:\Program Files\OpenSSL\bin\openssl.exe" pkcs12 -export -out KeyPackage.pfx -inkey ProductPrivate.key -in ProductCertificate.crt -passout pass:superevil -passin pass:secret
这是实际的屏幕截图,您可以看到所有步骤都成功完成,并且您可以看到我设置的密码。
我验证了所有三个文件均已创建:
接下来,我获取了 pfx 并尝试将其导入到几台计算机的证书存储中,但是在我尝试的所有地方,我都收到相同的密码不正确错误。我在 5 - 6 年前使用过同样的指令,一切正常,所以我不知道发生了什么变化?你碰巧知道吗?
下面的屏幕证明我输入的 pfx 密码正确。
我找到了答案,只有当我使用 openssl v. 3.0.1 时这才是问题。我针对 openssl 1.1 测试了相同的步骤并且导入有效。
在 openssl3.X 命令中添加标志 -certpbe PBE-SHA1-3DES -keypbe PBE-SHA1-3DES