2011-09-24 5 views

Répondre

36

Un fichier PEM peut contenir à peu près tout, y compris une clé publique, une clé privée ou les deux, car un fichier PEM n'est pas un standard. En effet, PEM signifie simplement que le fichier contient un bit de données codé en base64. C'est ce qu'on appelle un fichier PEM en faisant allusion aux anciennes normes de confidentialité améliorées qui ont précédé S/MIME en tant que norme de sécurité du courrier. Ces normes spécifiaient le format de diverses clés et messages dans un format base64 particulier. Voir RFC 1421 par exemple.

Généralement, un fichier PEM contient une clé ou un certificat codé en base64 avec des lignes d'en-tête et de pied de page de la forme -----BEGIN <whatever>----- et -----END <whatever>----. Au fil du temps, de nombreuses possibilités ont été développées pour <whatever>: clés privées, clés publiques, certificats X509, données PKCS7, fichiers contenant plusieurs certificats, fichiers contenant à la fois la clé privée et le certificat X509, demandes de signature de certificat PKCS # 10, ...

+3

Merci d'expliquer ce que l'abréviation signifie – hek2mgl

2

Vous pouvez decode votre PEMx509certificate avec formaté la commande suivante:

openssl x509 -in cert.pem -text -noout 

PEM certificat contains clé publique ne ou clé privée ne ou à la fois.


Pour la example suivante:

-----BEGIN CERTIFICATE----- 
MIICLDCCAdKgAwIBAgIBADAKBggqhkjOPQQDAjB9MQswCQYDVQQGEwJCRTEPMA0G 
A1UEChMGR251VExTMSUwIwYDVQQLExxHbnVUTFMgY2VydGlmaWNhdGUgYXV0aG9y 
aXR5MQ8wDQYDVQQIEwZMZXV2ZW4xJTAjBgNVBAMTHEdudVRMUyBjZXJ0aWZpY2F0 
ZSBhdXRob3JpdHkwHhcNMTEwNTIzMjAzODIxWhcNMTIxMjIyMDc0MTUxWjB9MQsw 
CQYDVQQGEwJCRTEPMA0GA1UEChMGR251VExTMSUwIwYDVQQLExxHbnVUTFMgY2Vy 
dGlmaWNhdGUgYXV0aG9yaXR5MQ8wDQYDVQQIEwZMZXV2ZW4xJTAjBgNVBAMTHEdu 
dVRMUyBjZXJ0aWZpY2F0ZSBhdXRob3JpdHkwWTATBgcqhkjOPQIBBggqhkjOPQMB 
BwNCAARS2I0jiuNn14Y2sSALCX3IybqiIJUvxUpj+oNfzngvj/Niyv2394BWnW4X 
uQ4RTEiywK87WRcWMGgJB5kX/t2no0MwQTAPBgNVHRMBAf8EBTADAQH/MA8GA1Ud 
DwEB/wQFAwMHBgAwHQYDVR0OBBYEFPC0gf6YEr+1KLlkQAPLzB9mTigDMAoGCCqG 
SM49BAMCA0gAMEUCIDGuwD1KPyG+hRf88MeyMQcqOFZD0TbVleF+UsAGQ4enAiEA 
l4wOuDwKQa+upc8GftXE2C//4mKANBC6It01gUaTIpo= 
-----END CERTIFICATE----- 

vous obtiendrez:

Certificate: 
    Data: 
     Version: 3 (0x2) 
     Serial Number: 0 (0x0) 
    Signature Algorithm: ecdsa-with-SHA256 
     Issuer: C = BE, O = GnuTLS, OU = GnuTLS certificate authority, ST = Leuven, CN = GnuTLS certificate authority 
     Validity 
      Not Before: May 23 20:38:21 2011 GMT 
      Not After : Dec 22 07:41:51 2012 GMT 
     Subject: C = BE, O = GnuTLS, OU = GnuTLS certificate authority, ST = Leuven, CN = GnuTLS certificate authority 
     Subject Public Key Info: 
      Public Key Algorithm: id-ecPublicKey 
       Public-Key: (256 bit) 
       pub: 
        04:52:d8:8d:23:8a:e3:67:d7:86:36:b1:20:0b:09: 
        7d:c8:c9:ba:a2:20:95:2f:c5:4a:63:fa:83:5f:ce: 
        78:2f:8f:f3:62:ca:fd:b7:f7:80:56:9d:6e:17:b9: 
        0e:11:4c:48:b2:c0:af:3b:59:17:16:30:68:09:07: 
        99:17:fe:dd:a7 
       ASN1 OID: prime256v1 
       NIST CURVE: P-256 
     X509v3 extensions: 
      X509v3 Basic Constraints: critical 
       CA:TRUE 
      X509v3 Key Usage: critical 
       Certificate Sign, CRL Sign 
      X509v3 Subject Key Identifier: 
       F0:B4:81:FE:98:12:BF:B5:28:B9:64:40:03:CB:CC:1F:66:4E:28:03 
    Signature Algorithm: ecdsa-with-SHA256 
     30:45:02:20:31:ae:c0:3d:4a:3f:21:be:85:17:fc:f0:c7:b2: 
     31:07:2a:38:56:43:d1:36:d5:95:e1:7e:52:c0:06:43:87:a7: 
     02:21:00:97:8c:0e:b8:3c:0a:41:af:ae:a5:cf:06:7e:d5:c4: 
     d8:2f:ff:e2:62:80:34:10:ba:22:dd:35:81:46:93:22:9a 

Pour comprendre la différence entre les sections Public Key Algorithm et Signature Algorithm lire this (les deux sont publiques).

Questions connexes