Indice dei contenuti
In questo articolo, parte integrante della nostra serie di approfondimenti sulla gestione dei certificati SSL sui sistemi Windows e Linux, cercheremo di fornire una panoramica generale dei formati (e relative estensioni) che si incontrano più di frequente lavorando con i certificati SSL tra i vari sistemi.
Prima di addentrarci nelle descrizioni relative a ciascun formato spenderemo qualche parola sullo standard X.509 v3, il quale rappresenta la base delle definizioni di tutti i formati che andremo ad elencare.
X.509
X.509 è il nome dato a uno standard ITU-T per le infrastrutture a chiave pubblica (PKI): presentato per la prima volta nel 1998, è stato utilizzato negli anni successivi per definire una serie di formati standard per certificati a chiave pubblica e delle relative liste di revoca (CRL, da Certificate Revocation List). Con il termine Certificato X.509 oggi ci si riferisce convenzionalmente alla terza revisione dello standard (X.509 v3), le cui caratteristiche sono descritte nella RFC 5280.
Segue un elenco dei formati più comuni definiti attraverso lo standard X.509 v3 (e relative estensioni).
PEM (.cer .crt .pem .key)
Si tratta del formato piu comune utilizzato per la distribuzione dei certificati. Nella maggior parte dei casi si tratta di file ASCII che contengono uno o più certificati, con o senza chiave privata, codificati in Base64 e racchiusi tra i descrittori -----BEGIN CERTIFICATE----- e -----END CERTIFICATE----- . La chiave privata, ove presente, sarà racchiusa tra i descrittori -----BEGIN RSA PRIVATE KEY----- e -----END RSA PRIVATE KEY----- . Nonostante la possibilità di includere la chiave privata all'interno del file PEM / CER / CRT, la maggior parte dei server (Apache, NGINX), si aspettano che quest'ultima sia inserita in un file separato per ragioni di sicurezza.
Le estensioni comunemente utilizzate per questo formato sono .CER, .CRT, .PEM e .KEY (quest'ultimo per la sola chiave privata).
DER (.der .cer)
Si tratta della versione "binaria" del certificato PEM: anche in questo caso il file può contenere un singolo certificato o più certificati, con o senza chiave privata. Si tratta di un formato utilizzato prevalentemente da Java e poco presente sulle altre piattaforme.
Le estensioni comunemente utilizzate per questo formato sono .DER e .CER. Per distinguere un .CER in formato PEM da un .CER in formato .DER è sufficiente aprire il file con un editor di testo e guardare se il file è in formato ASCII oppure no.
PKCS#7 (.p7b .p7c)
Si tratta di un formato in formato ASCII e codificato in Base64, utilizzato prevalentemente da Microsoft Windows e da Java Tomcat.
Le estensioni comunemente utilizzate per questo formato sono .P7B e .P7C.
PKCS#12 (.pfx .p12)
Formato binario che racchiude il certificato, l'insieme dei certificati intermedi (se presenti) e la chiave privata in un unico file criptato e protetto da password. E' utilizzato prevalentemente all'interno dei sistemi e delle infrastrutture Windows per importare ed esportare certificati e chiavi private tra i vari servizi e applicativi (Firewall, Proxy, etc.).
Le estensioni comunemente utilizzate per questo formato sono .PFX e .P12.
Conclusioni
Per il momento è tutto: ci auguriamo che questa panoramica vi abbia fornito qualche informazione in più sull'universo dei certificati e dei loro formati.
Se avete bisogno di ulteriori informazioni, ad esempio sulla conversione tra i vari formati sopra elencati mediante lo strumento OpenSSL o tramite strumenti online, consigliamo di consultare questo articolo.
Alla prossima!