Strumenti Utente

Strumenti Sito


guide_pubbliche:certificatitls:formaticertificati

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
guide_pubbliche:certificatitls:formaticertificati [2025/04/11 06:23]
riccardo.cappone@unipr.it [Comandi per Generare Chiavi Private Sicure]
guide_pubbliche:certificatitls:formaticertificati [2025/05/14 06:49] (versione attuale)
riccardo.cappone@unipr.it
Linea 58: Linea 58:
  
 ====== Generazione chiave privata e CSR ====== ====== 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 1. Utilizzare Algoritmi Forti
Linea 66: Linea 74:
 Moduli di Sicurezza Hardware (HSM): Archiviare le chiavi in HSM per sicurezza fisica. 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. 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 ===== ===== Comandi per Generare Chiavi Private Sicure =====
  
  
-^ Tipo di Chiave ​ ^ Dimensione ​       | Comando ​                                                                                | +^ Tipo di Chiave ​ ^ Dimensione ​ | Comando ​                                                                                | 
-| RSA             | 2048              | openssl genpkey -algorithm RSA -out rsa_2048.key -aes256 -pkeyopt rsa_keygen_bits:​2048 ​ | +| 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             | 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 ​ | +| RSA             | 4096        | openssl genpkey -algorithm RSA -out rsa_4096.key -aes256 -pkeyopt rsa_keygen_bits:​4096  ​
-| ECDSA           ​| ​256 (prime256v1) ​ | openssl ecparam -name prime256v1 -genkey -noout -out ecdsa_256.key ​                     + 
-| ECDSA           ​| ​384 (secp384r1) ​  | openssl ecparam -name secp384r1 -genkey -noout -out ecdsa_384.key ​                      ​|+^ 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 ​ | 
 + 
 +====== Altri comandi utili da terminale con openssl ====== 
 + 
 +===== Leggere da un file contenente una catena di certificati (bundle) ===== 
 + 
 +Output breve:\\ 
 +<​code>​ 
 +openssl crl2pkcs7 -nocrl -certfile <​nome_file_certificati_bundle>​.pem | openssl pkcs7 -print_certs -noout 
 +</​code>​ 
 +Output esteso:\\ 
 +<​code>​ 
 +openssl crl2pkcs7 -nocrl -certfile <​nome_file_certificati_bundle>​.pem | openssl pkcs7 -print_certs -text -noout 
 +</​code>​ 
 + 
 +===== Verificare corrispondenza chiave privata - certificato - CSR ===== 
 + 
 +Estrarre ed effettuare l'hash della chiave pubblica a partire dalla chiave privata:​\\ 
 +<​code>​ 
 +openssl rsa -noout -modulus -in server.key | openssl md5 
 +</​code>​ 
 + 
 +Dal certificato:​\\ 
 +<​code>​ 
 +openssl x509 -noout -modulus -in server.crt | openssl md5 
 +</​code>​ 
 + 
 +Dal CSR:\\ 
 +<​code>​ 
 +openssl req -noout -modulus -in server.csr | openssl md5 
 +</​code>​ 
 + 
 +Gli hash devono essere uguali in tutti i tre casi. 
 + 
 +===== Chiave privata protetta da password ===== 
 + 
 +Durante il wizard per la creazione del CSR viene generata la chiave privata, protetta da password e dunque cifrata. Se si desidera utilizzare la chiave privata in sistemi che non prevedono la decifratura,​ è possibile eliminare la cifratura con il seguente comando: 
 + 
 +<​code>​ 
 +openssl rsa -in encrypted_key.pem -out decrypted_key.pem 
 +</​code>​