我想使用 PowerShell 提取 SSL 证书的私钥。
我用谷歌搜索并尝试了以下 openssl 命令:
& openssl.exe pkcs12 -in filename.pfx -nocerts -out key.pem
但是我必须手动输入密码,最终得到无效的“RSA PRIVATE KEY”。 如何获取未加密的密钥并将密码传递给 OpenSSL?
您的命令是正确的,并为您提供 PKCS#8 格式的加密私钥。如果您需要未加密私钥,只需添加
-nodes
选项:
openssl pkcs12 -in filename.pfx -nocerts -nodes -out key.pem
如果您需要旧 RSA 格式的私钥,您应该使用
openssl pkcs8
命令转换给定的密钥:
openssl pkcs8 -in key.pem -out rsakey.pem
详情请参阅文档:
本期您可以检查两件事,
确保在您使用的 OpenSLL 命令中添加 -nodes 属性,这样提取的 RSA 私钥将是未加密的。例如,
pkcs12 -in certificate-name.pfx -nocerts -nodes -out private-key.pem
您可以将Private Key中的bag和key属性行去掉试试。
在我的博客上查看对此问题的详细解释:如何从 PFX 证书文件中提取私钥