web-dev-qa-db-fra.com

comment puis-je vérifier si le fichier de certificat que j'ai est au format .pem

J'ai un fichier rootcert et je ne sais pas s'il est au format .pem ou non, comment puis-je vérifier qu'il est au format .pem?

37
Kumar

Un certificat au format .pem sera probablement lisible en ASCII. Il aura une ligne -----BEGIN CERTIFICATE-----, suivie de données codées en base64, suivies d'une ligne -----END CERTIFICATE-----. Il peut y avoir d'autres lignes avant ou après.

35
Anomie

Certificats DER vs CRT vs CER vs PEM et comment les convertir

Citation de la page de support:

View
====

Even though PEM encoded certificates are ASCII they are not human
readable.  Here are some commands that will let you output the
contents of a certificate in human readable form;

View PEM encoded certificate
----------------------------

Use the command that has the extension of your certificate replacing
cert.xxx with the name of your certificate

openssl x509 -in cert.pem -text -noout
openssl x509 -in cert.cer -text -noout
openssl x509 -in cert.crt -text -noout

If you get the folowing error it means that you are trying to view a DER encoded certifciate and need to use the commands in the “View DER encoded certificate 
below”

unable to load certificate
12626:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:647:Expecting: TRUSTED CERTIFICATE View DER encoded Certificate


View DER encoded Certificate
----------------------------

openssl x509 -in certificate.der -inform der -text -noout

If you get the following error it means that you are trying to view a PEM encoded certificate with a command meant for DER encoded certs. Use a command in the “View PEM encoded certificate above

unable to load certificate
13978:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1306:
13978:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:380:Type=X509
50
user2129888

Référence CRL, CRT, RSE, NOUVELLE RSE, CLÉ PRIVÉE, CLÉ PUBLIQUE Parser

CRL 

-----BEGIN X509 CRL-----
-----END X509 CRL-----

Tube cathodique 

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

RSE

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

NOUVEAU RSE

-----BEGIN NEW CERTIFICATE REQUEST-----
-----END NEW CERTIFICATE REQUEST-----

PEM

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

PKCS7

-----BEGIN PKCS7-----
-----END PKCS7-----

CLÉ PRIVÉE

-----BEGIN PRIVATE KEY-----
-----END PRIVATE KEY-----
11
anish

Pour qu'OpenSSL le reconnaisse au format PEM, il doit être codé en Base64, avec l'en-tête suivant:

-----BEGIN CERTIFICATE-----

et pied de page:

-----END CERTIFICATE-----

De plus, chaque ligne doit comporter 79 caractères au maximum. Sinon, vous recevrez l'erreur: 

2675996:error:0906D064:PEM routines:PEM_read_bio:bad base64 decode:pem_lib.c:818:

Remarque: la norme PEM (RFC1421) impose des lignes de 64 caractères. Un certificat PEM stocké sur une seule ligne peut être converti à l'aide de l'utilitaire de ligne de commande UNIX.

fold -w 64
6
metatechbe

Comment puis-je vérifier si le fichier de certificat que j'ai est au format .pem

cat le fichier et recherchez l'en-tête pré-encapsulé et l'en-tête post-encapsulé. L'en-tête pré-encapsulé est -----BEGIN CERTIFICATE----- ou -----BEGIN X509 CERTIFICATE-----; et l'en-tête post-encapsulé est -----END CERTIFICATE----- ou -----END X509 CERTIFICATE-----.

Les en-têtes encapsulés sont discutés dans RFC 1421 . Il n'y a pas de liste standard ou une liste complète des objets dans ces en-têtes (comme CERTIFICATE ou X509 CERTIFICATE). La plupart des gens utilisent l'en-tête pem.h d'OpenSSL pour obtenir une liste des types d'objet.

0
jww