2013-01-07 8 views
12

I`m próbuje przekonwertować plik cer do .pem przez OpenSSL, komenda brzmi:OpenSSL błędy kodowania podczas konwersji cer do PEM

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

i to jest coraz błędy I`m:

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 

Co robię źle?

+3

Może Twój plik 'cer' jest dostępny w postaci 'pem'. Przeczytaj http://openssl.6102.n7.nabble.com/Error-converting-from-cer-to-pem-td2179.html – banuj

Odpowiedz

5

Miałem również ten problem. Wystarczy zmienić nazwę CER na PEM wystarczy :)

5

Aby rozwinąć na existing answer, np. explained by ssl.com, plik .cer może być kodowaniem in der lub pem. Jeśli jest to kodowanie, musisz wykonać konwersję tak, jak zrobiłeś, ale jeśli jest już w kodowaniu pemów, konwersja nie jest konieczna i otrzymasz błąd, który masz, jeśli spróbujesz - i możesz po prostu zmienić nazwę plik.

Jeśli nie masz pewności, dobrze jest wiedzieć, że .der jest formatem binarnym, podczas gdy .pem jest ascii. Jeśli echo zawartość swojego świadectwa na zewnątrz, plik .pem będzie wyglądać mniej więcej tak:

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

I .der plik będzie wyglądać następująco:

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

Mam podobny problem z CRT format, który daje mi błąd podczas konwersji na pem. Robię to samo, co L0g0ff i to działa. Poniżej więcej szczegółów.

  1. Sprawdziłem szczegóły certyfikatu:

    openssl x509 -in certificate.crt -noout -text

  2. po zmianie rozszerzenia się z certificate.crt do certificate.pem uzyskać plik w formacie oczekiwanym:

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