2013-01-07 26 views
12

我真的试图将.cer文件转换通过OpenSSL的为.pem,命令是:OpenSSL的编码错误,同时转换CER为PEM

openssl x509 -inform der -in certnew.cer -out ymcert.pem 

,这就是错误我真的越来越:

unable to load certificate 
140735105180124:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1319: 
140735105180124:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:381:Type=X509 

我在做什么错?

+3

也许你的'cer'文件是alre ady以'pem'形式。阅读http://openssl.6102.n7.nabble.com/Error-converting-from-cer-to-pem-td2179.html – banuj

回答

5

我也有这个问题。只需将CER重新命名为PEM即可:)

5

要扩展existing answer,就像explained by ssl.com一样,.cer文件可以是der或pem编码。如果它是在编码中,你需要像你做的那样进行转换,但是如果它已经在pem编码中,那么不需要转换,并且如果你尝试了,就会得到你得到的错误 - 而且你可以重命名文件。

如果您不确定,很高兴知道.der是一种二进制格式,而.pem是ascii之一。如果您回应您的证书出来的内容,为.pem文件将是这个样子:

-----BEGIN CERTIFICATE----- 
MIIEuTCCA6G[snip lots of chars] 
XmCpajQ== 
-----END CERTIFICATE----- 

而一个.der文件应该是这样的:

0▒▒0▒▒▒@*▒H▒▒▒▒▒0 
0▒▒1 
    0 UUS10U 
VeriSign, Inc.10U 
       VeriSign Trust Network1:08U 
0

我与CRT类似的问题在转换为pem期间给我错误的格式。我做同样的事情像L0g0ff,它的工作原理。以下更多细节。

  1. 我检查证书的详细信息:

    openssl x509 -in certificate.crt -noout -text

  2. 从certificate.crt改扩建后到certificate.pem我得到了预期的格式文件:

-----BEGIN CERTIFICATE----- ........................... -----END CERTIFICATE-----