SSL: 无法加载证书

44

我有两个文件 - CSR.csr 和 newkey.key,它们似乎都是PEM格式,如下所示 -

-----BEGIN CERTIFICATE REQUEST-----

MIID....

-----END CERTIFICATE REQUEST-----

-----BEGIN RSA PRIVATE KEY-----

MI...

-----END RSA PRIVATE KEY-----

当我尝试读取CSR.csr文件时,出现以下错误:

$ openssl x509 -in CSR.csr -text -noout
unable to load certificate
140518720210760:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:698:Expecting: TRUSTED CERTIFICATE

我读到当输入文件为DER格式时会出现这个错误,所以我尝试了以下操作 -

$ openssl x509 -inform DER -in CSR.csr -text -noout

但现在我遇到了错误 -

unable to load certificate
140519053051720:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1320:
140519053051720:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:382:Type=X509

当输入文件已经处于PEM格式并尝试以DER格式读取时,似乎会出现此错误。

因为我是SSL的新手,所以真的不知道该怎么做。请帮帮我!


Stack Overflow是一个关于编程和开发问题的网站。这个问题似乎不属于编程或开发范畴。请参阅帮助中心中的我可以在这里问什么样的问题。也许超级用户Unix&Linux Stack Exchange更适合提问。另请参阅我应该在哪里发布Dev Ops相关问题? - jww
3个回答

42

在我的情况下,我试图读取我的cer文件,但是收到了上述错误。

openssl x509 -in CSR.csr -text -noout unable to load certificate 140518720210760:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:698:Expecting: TRUSTED CERTIFICATE

我必须使用openssl将其转换为crt文件。

openssl x509 -inform DER -in <certname>.cer -out <certname>.crt
openssl x509 -in <certname>.crt -text

这里是我使用的文档。在那之后,我能够使用openssl阅读它。


1
我也遇到过类似的情况,然后仍然存在一个问题,就是当某些工具在一些非内容标记(如连字符行)之前包含空行时。只需删除空行即可解决该问题。 - Justin

33

问题不在于PEM与DER的选择,而是您在需要证书的地方使用了证书请求。这一点通过PEM头部-----BEGIN CERTIFICATE REQUEST-----清楚地表明。

要显示证书请求的内容,请使用:

openssl req -in CSR.csr -text

要显示证书的内容,请使用

certificate
openssl x509 -in CERT.crt -text

0

这个错误也会发生在不是由CA签名的“证书请求”发出的证书(非CSR证书),但是它们是来自Windows PKI的x509常规证书,格式为“.cer”

在这种情况下,遵循“Norbert”的答案是解决问题的好方法,将证书转换为“.crt”

文件能够使用以下命令进行转储:

openssl x509 -in YOURCERT.crt -noout -text

或者

openssl x509 -in YOURCERT.crt -text

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接