web-dev-qa-db-fra.com

Erreurs de codage OpenSSL lors de la conversion de cer en pem

J'essaie de convertir le fichier .cer en .pem via openssl, la commande est la suivante:

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

et ce sont les erreurs que je reçois:

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

Qu'est-ce que je fais mal?

13
Arthur Kushman

J'ai aussi eu ce problème. Il suffit de renommer le CER en PEM :)

6
L0g0ff

Pour développer la réponse existante , comme expliquée par ssl.com , un fichier .cer peut être un codage in der ou pem. Si c'est dans l'encodage, vous aurez besoin de faire la conversion comme vous l'avez fait, mais s'il est déjà en encodage pem, aucune conversion n'est nécessaire et vous obtenez l'erreur que vous avez si vous essayez - et vous pouvez simplement renommer le fichier.

Si vous n'êtes pas sûr, il est bon de savoir que .der est un format binaire, alors que .pem est un format ascii. Si vous restituez le contenu de votre certificat, un fichier .pem ressemblerait à ceci:

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

Et un fichier .der ressemblerait à ceci:

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

J'ai un problème similaire avec le format CRT qui me donne une erreur lors de la conversion en PEM. Je fais la même chose comme L0g0ff et ça marche. Ci-dessous plus de détails.

  1. J'ai vérifié les détails du certificat: 

    openssl x509 -in certificate.crt -noout -text

  2. après avoir changé l'extension de certificate.crt à certificate.pem, le fichier est au format attendu:

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

0
tarkos