我有一个.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
如何获得私钥及其证书?
看来您有DER格式为的证书,而不是PEM。这就是为什么当您提供-inform PEM命令行参数(告诉openssl期望什么样的输入格式)时它可以正常工作的原因。
DER
PEM
-inform PEM
您的私钥可能使用了相同的编码。看起来该openssl rsa命令似乎也接受-inform参数,因此请尝试:
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-----
While DER是二进制编码格式。
更新资料
有时,密钥以PKCS#8格式(可以是PEM或DER编码)分发。尝试一下,看看会得到什么:
openssl pkcs8 -in file.key -inform der