我已经在Windows 7 64位的OpenSSL这是我从下载了OpenSSL的换窗户上谷歌代码 。 我试图运行:
openssl pkcs12 -export -in "path.p12" -out "newfile.pem"
但我得到一个错误。
unable to load private key
我如何提取从PKCS#12店使用OpenSSL在PEM证书?
我已经在Windows 7 64位的OpenSSL这是我从下载了OpenSSL的换窗户上谷歌代码 。 我试图运行:
openssl pkcs12 -export -in "path.p12" -out "newfile.pem"
但我得到一个错误。
unable to load private key
我如何提取从PKCS#12店使用OpenSSL在PEM证书?
尝试:
openssl pkcs12 -in path.p12 -out newfile.crt.pem -clcerts -nokeys
openssl pkcs12 -in path.p12 -out newfile.key.pem -nocerts -nodes
之后,你必须:
将证书和密钥在同一文件中使用以下
openssl pkcs12 -in path.p12 -out newfile.pem
如果您需要输入PKCS#12密码,直接在命令行(如脚本),只需添加-passin pass:${PASSWORD}
openssl pkcs12 -in path.p12 -out newfile.crt.pem -clcerts -nokeys -passin 'pass:P@s5w0rD'
你只需要提供密码。 你可以用下面的语法相同的命令行内做到这一点:
openssl pkcs12 -export -in "path.p12" -out "newfile.pem" -passin pass:[password]
然后你将被提示输入密码来加密输出文件的私钥。 包括如果你要导出的私钥加密(明文)以上就行了“节点”选项:
openssl pkcs12 -export -in "path.p12" -out "newfile.pem" -passin pass:[password] -nodes
更多信息: http://www.openssl.org/docs/apps/pkcs12.html
如果你可以使用Python,如果你有它更容易pyopenssl
模块。 这里是:
from OpenSSL import crypto
# May require "" for empty password depending on version
with open("push.p12", "rb") as file:
p12 = crypto.load_pkcs12(file.read(), "my_passphrase")
# PEM formatted private key
print crypto.dump_privatekey(crypto.FILETYPE_PEM, p12.get_privatekey())
# PEM formatted certificate
print crypto.dump_certificate(crypto.FILETYPE_PEM, p12.get_certificate())
我有一个PFX文件,并创造NGINX KEY文件所需,所以我这样做:
openssl pkcs12 -in file.pfx -out file.key -nocerts -nodes
然后,我不得不编辑KEY文件,并删除所有内容以-----BEGIN PRIVATE KEY-----
。 这NGINX后接受了KEY文件。