Strumenti Utente

Strumenti Sito


guide_pubbliche:certificatitls:formaticertificati

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

HARICA mette a disposizione un tool grafico via web per generare chiavi private e CSR

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

E' altresì possibile creare le chiavi con il comando openssl su terminale Linux.

Raccomandiamo le seguenti best practice:

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.

3. Crittografare le Chiavi Private Crittografia AES-256: Crittografare le chiavi private con algoritmi di crittografia forti.

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

Comandi per Generare la CSR a partire dalle chiavi private

Tipo di Chiave Curva/Dimensione Comando per Generare la CSR
RSA 2048 bit openssl req -new -key rsa_2048.key -out rsa_2048.csr
RSA 3072 bit openssl req -new -key rsa_3072.key -out rsa_3072.csr
RSA 4096 bit openssl req -new -key rsa_4096.key -out rsa_4096.csr
ECDSA prime256v1 (256 bit) openssl req -new -key ecdsa_256_encrypted.key -out ecdsa_256.csr
ECDSA secp384r1 (384 bit) openssl req -new -key ecdsa_384_encrypted.key -out ecdsa_384.csr