Skip to main content
  1. Concetti/

Certificate Formats - PEM, DER, PFX/P12, CER, CRT, KEY

·2 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

Certificate Formats
#

I formati dei certificati X.509 rappresentano lo stesso dato (chiave pubblica + metadati + firma CA) serializzato in modi diversi per contesti diversi. Scegliere il formato sbagliato genera errori silenziosi: il certificato esiste ma il sistema non lo accetta.

certificate-formats-x509.webp

PEM
#

PEM (Privacy Enhanced Mail) e' il formato testuale universale: il contenuto binario del certificato e' codificato in base64 e racchiuso tra header/footer riconoscibili.

Header tipici:

  • -----BEGIN CERTIFICATE----- / -----END CERTIFICATE-----
  • -----BEGIN PRIVATE KEY----- / -----END PRIVATE KEY-----
  • -----BEGIN CERTIFICATE REQUEST----- / -----END CERTIFICATE REQUEST-----

Dev parallel: Come il formato JSON nelle API REST. Testo leggibile, trasportabile ovunque, inizi/fine chiaramente delimitati. Il base64 e' il "JSON encoding" per i dati binari del certificato.

DER
#

DER (Distinguished Encoding Rules) e' la serializzazione binaria dello stesso ASN.1 che sta dentro un PEM. Non e' una struttura diversa: e' lo stesso dato senza il wrapper base64.

PFX / PKCS#12
#

PFX (Personal Information Exchange) o PKCS#12 e' un contenitore che raggruppa in un unico file cifrato: il certificato end-entity, la catena di certificati intermedi e la private key. La protezione tramite password impedisce l'estrazione senza credenziali.

digital-certificate-structure.webp

Dev parallel: Come un archivio ZIP protetto da password che contiene tutti i file necessari per un deploy. Comodo per trasportare, ma va estratto prima dell'uso nel server.

CSR
#

Il CSR (Certificate Signing Request) non e' un certificato ma la richiesta preliminare: contiene la public key del richiedente e gli attributi X.509 (CN, O, SAN) ma non ancora la firma della CA. E' il "modulo" da inviare alla CA per ottenere il certificato firmato.

Conversioni OpenSSL
#

Conoscere le conversioni e' essenziale per la gestione pratica dei certificati: i sistemi legacy spesso richiedono un formato specifico.

Dev parallel: Come i vari formati di serializzazione API: JSON (PEM - leggibile, verbose), Protobuf (DER - binario, compatto), ZIP+JSON (PFX - contenitore con tutto dentro). Stesso dato, formato diverso per contesti diversi. Sbagliare formato da errore crittografico, non di logica.

Related