当我这样做时,我有一个 .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
如何获取私钥及其证书?
原文由 helado 发布,翻译遵循 CC BY-SA 4.0 许可协议
看起来您有 --- 格式的证书,而不是
PEM
DER
格式。这就是为什么当您提供-inform PEM
命令行参数(它告诉 openssl 预期的输入格式)时它可以正常工作的原因。您的私钥很可能使用相同的编码。看起来
openssl rsa
命令也接受-inform
参数,所以试试:PEM
编码文件是一种纯文本编码,类似于:而
DER
是二进制编码格式。更新
有时密钥以 PKCS#8 格式(可以是 PEM 或 DER 编码)分发。试试这个,看看你得到了什么: