无法使用openssl获取私钥(no start line:pem_lib.c:703:Expecting:ANY PRIVATE KEY)

我有.key文件,当我这样做

openssl rsa -text -in file.key

我明白了

 unable to load Private Key 140000419358368:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: ANY PRIVATE KEY 

另外我有一个.cer文件,当我做

openssl x509 -text -in file.cer

我明白了

 unable to load certificate 140387178489504:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE 

但是,如果在这里指出我运行命令,如:

openssl x509 -text -inform DER -in file.cer

我明白了

 Certificate: Data: Version: 3 (0x2) Some more information ... -----BEGIN CERTIFICATE----- MIIEdDCCA1ygAwIBAgIUMjAwMDEwMDAwMDAxMDAwMDU4NjcwDQYJKoZIhvcNAQEF ... -----END CERTIFICATE----- 

但是,这似乎并没有与关键的工作,因为当我运行

openssl rsa -text -inform DER -in aaa010101aaa__csd_10.key

我明白了

 unable to load Private Key 140004844304032:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1337: 140004844304032:error:0D06C03A:asn1 encoding routines:ASN1_D2I_EX_PRIMITIVE:nested asn1 error:tasn_dec.c:849: 140004844304032:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:769:Field=version, Type=RSA 140004844304032:error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib:rsa_ameth.c:115: 140004844304032:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1337: 140004844304032:error:0D06C03A:asn1 encoding routines:ASN1_D2I_EX_PRIMITIVE:nested asn1 error:tasn_dec.c:849: 140004844304032:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:769:Field=version, Type=PKCS8_PRIV_KEY_INFO 

我怎样才能得到私钥和证书?

Solutions Collecting From Web of "无法使用openssl获取私钥(no start line:pem_lib.c:703:Expecting:ANY PRIVATE KEY)"

它看起来像DER格式,而不是PEM的证书。 这就是为什么当你提供-inform PEM命令行参数(告诉openssl需要什么输入格式)时它能正常工作。

这很可能是您的私钥使用相同的编码。 它看起来好像openssl rsa命令也接受-inform参数,所以请尝试:

 openssl rsa -text -in file.key -inform DER 

一个PEM编码文件是一个纯文本编码,看起来像这样:

 -----BEGIN RSA PRIVATE KEY----- MIGrAgEAAiEA0tlSKz5Iauj6ud3helAf5GguXeLUeFFTgHrpC3b2O20CAwEAAQIh ALeEtAIzebCkC+bO+rwNFVORb0bA9xN2n5dyTw/Ba285AhEA9FFDtx4VAxMVB2GU QfJ/2wIRANzuXKda/nRXIyRw1ArE2FcCECYhGKRXeYgFTl7ch7rTEckCEQDTMShw 8pL7M7DsTM7l3HXRAhAhIMYKQawc+Y7MNE4kQWYe -----END RSA PRIVATE KEY----- 

DER是一种二进制编码格式。

更新

有时密钥以PKCS#8格式(可以是PEM或DER编码)分发。 试试这个,看看你得到了什么:

 openssl pkcs8 -in file.key -inform der 

我的两分钱:在运行带有根CA证书的openssl命令时,在RHEL7.3中遇到了同样的错误消息。 原因是,从AD服务器下载证书时,Encoding被选为DER而不是Base64。 一旦为新的证书下载选择了适当的编码版本,错误就解决了

希望这有助于新用户:-)