Strumenti Utente

Strumenti Sito


guide_pubbliche:certificatitls:formaticertificati

Questa è una vecchia versione del documento!


Formati disponibili dei vari certificati TLS e utility

1. PEM (Privacy Enhanced Mail)

  • Estensioni: .pem, .crt, .cer, .key
  • Codifica: Base64 ASCII
  • Contenuti: Può includere certificati, chiavi private e catene di certificati.
  • Utilizzo: Comunemente usato in ambienti Unix/Linux. Facile da leggere e modificare con un editor di testo.

2. DER (Distinguished Encoding Rules)

  • Estensioni: .der, .cer
  • Codifica: Binaria
  • Contenuti: Tipicamente contiene un singolo certificato.
  • Utilizzo: Comunemente usato in ambienti Windows. Non leggibile dall'uomo.

3. PKCS#7

  • Estensioni: .p7b, .p7s
  • Codifica: Base64 ASCII o Binaria
  • Contenuti: Certificati e catene di certificati, ma non chiavi private.
  • Utilizzo: Usato per lo scambio di certificati. Comunemente visto in ambienti Windows.

4. PKCS#12

(è possibile utilizzare il tool messo a disposizione da Harica per generare questo formato)

  • Estensioni: .p12, .pfx
  • Codifica: Binaria
  • Contenuti: Certificati, chiavi private e catene di certificati.
  • Utilizzo: Usato per memorizzare più oggetti crittografici in un unico file. Comunemente usato per importare/esportare certificati e chiavi tra sistemi.

Tabella Riassuntiva

Formato Estensioni Codifica Contenuti Utilizzo
PEM .pem, .crt, .cer, .key Base64 ASCII Certificati, chiavi private, catene di certificati Ambienti Unix/Linux, leggibile dall'uomo
DER .der, .cer Binaria Singolo certificato Ambienti Windows, non leggibile dall'uomo
PKCS#7 .p7b, .p7s Base64 ASCII o Binaria Certificati, catene di certificati Scambio di certificati, ambienti Windows
PKCS#12 .p12, .pfx Binaria Certificati, chiavi private, catene di certificati Importazione/esportazione tra sistemi, memorizzazione di più oggetti crittografici

Conversione dei formati

Generazione del formato PKCS#12

E' possibile avvalersi del tool grafico via web messo a disposizione da HARICA a questo indirizzo:

https://www.harica.gr/en/Tools/PemToP12

In input saranno necessari il certificato in formato (.pem), la chiave privata in formato (.pem), la password che crittografa la chiave privata ed infine il file PEM bundle in formato (.pem)

Con il programma openssl da terminale Linux è possibile convertire dal formato PEM al formato PKCS#12 con il seguente comando:

openssl pkcs12 -export -out certificate.pfx -inkey private.key -in certificate.crt -certfile ca_bundle.crt
Enter pass phrase for private.key:
Enter Export Password:
Verifying - Enter Export Password:

Generazione chiave privata e CSR

1. Utilizzare Algoritmi Forti RSA: Utilizzare una dimensione della chiave di almeno 2048 bit, ma 4096 bit è raccomandato per una maggiore sicurezza. Curva Ellittica (EC): Utilizzare curve come prime256v1 o secp384r1 per una forte sicurezza.

2. Utilizzare Archiviazione Sicura delle Chiavi Moduli di Sicurezza Hardware (HSM): Archiviare le chiavi in HSM per sicurezza fisica. File System Locale: Assicurarsi che le chiavi siano archiviate in modo sicuro con permessi appropriati.

Comandi per Generare Chiavi Private Sicure

Tipo di Chiave Dimensione Comando
RSA 2048 openssl genpkey -algorithm RSA -out rsa_2048.key -aes256 -pkeyopt rsa_keygen_bits:2048
RSA 3072 openssl genpkey -algorithm RSA -out rsa_3072.key -aes256 -pkeyopt rsa_keygen_bits:3072
RSA 4096 openssl genpkey -algorithm RSA -out rsa_4096.key -aes256 -pkeyopt rsa_keygen_bits:4096
Tipo di Chiave Curva Comando per Generare la Chiave Comando per Crittografare la Chiave
ECDSA prime256v1 (256 bit) openssl ecparam -name prime256v1 -genkey -noout -out ecdsa_256.key openssl pkcs8 -topk8 -inform PEM -outform PEM -in ecdsa_256.key -out ecdsa_256_encrypted.key -v2 aes256
ECDSA secp384r1 (384 bit) openssl ecparam -name secp384r1 -genkey -noout -out ecdsa_384.key openssl pkcs8 -topk8 -inform PEM -outform PEM -in ecdsa_384.key -out ecdsa_384_encrypted.key -v2 aes256