Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisione Revisione precedente Prossima revisione | Revisione precedente | ||
guide_pubbliche:certificatitls:formaticertificati [2025/04/11 05:48] riccardo.cappone@unipr.it |
guide_pubbliche:certificatitls:formaticertificati [2025/04/11 06:41] (versione attuale) riccardo.cappone@unipr.it [Generazione chiave privata e CSR] |
||
---|---|---|---|
Linea 1: | Linea 1: | ||
- | ====== Formati disponibili dei vari certificati TLS ====== | + | ====== Formati disponibili dei vari certificati TLS e utility ====== |
===== 1. PEM (Privacy Enhanced Mail) ===== | ===== 1. PEM (Privacy Enhanced Mail) ===== | ||
Linea 23: | Linea 23: | ||
===== 4. PKCS#12 ===== | ===== 4. PKCS#12 ===== | ||
+ | (è possibile utilizzare il tool messo a disposizione da Harica per generare questo formato) | ||
* Estensioni: .p12, .pfx | * Estensioni: .p12, .pfx | ||
Linea 29: | Linea 30: | ||
* Utilizzo: Usato per memorizzare più oggetti crittografici in un unico file. Comunemente usato per importare/esportare certificati e chiavi tra sistemi. | * Utilizzo: Usato per memorizzare più oggetti crittografici in un unico file. Comunemente usato per importare/esportare certificati e chiavi tra sistemi. | ||
- | ===== Tabella Riassuntiva ===== | + | ====== 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: | ||
+ | <code> | ||
+ | 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: | ||
+ | |||
+ | </code> | ||
+ | |||
+ | ====== 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 | |