Creare una chiave e un certificato digitale con OpenSSL
Inviato: 15/06/2024, 22:26
Ciao a tutti oggi tratterò brevemente l'argomento "come generare un certificato con OpenSSL" senza voler scendere più di tanto nei dettagli (quindi prendetel come un HowTo).
La informazioni riportate in questo articolo fanno riferimento alla versione 1.1.1c di OpenSSL e sono valide sia per Linux che per Windows.
CREARE UN CERTIFICATO SSL SELF-SIGNED (passo - passo)
1. Genero la chiave privata (senza password):
Con questo comando andremo a creare la chiave privata senza l'ausilio di una password.
2. Genero il certificato tramite chiave (non criptata):
Con questo comando andremo a creare un certificato di firma digitale tramite la chiave privata che abbiamo appena creato.
3. Genero il certificato tramite la firma e la chiave appena creati:
Con questo comando andremo a creare il certificato digitale tramite la firma digitale e la chiave privata.
Attenzione: in questo tutorial il mio consiglio è quello di non usare la password perchè partiamo dal presupposto di installare questi certificati su server di cui ci fidiamo e il fine di tutto questo è puramente didattico. In realtà i certificati vanno creati e firmato da un ente autorevole (che non siamo noi) e di solito questi servizi sono a pagamento. Ad ogni modo, sempre a titolo didattico, ecco come creare una chiave privata con l'ausilio di una password.
Con questo comando genero la chiave privata con password:
Se invece volessi togliere la password della chiave utilizzerò il comando:
CREARE UN CERTIFICATO SSL SELF-SIGNED (tutto in un passaggio)
Con questo comando crei un certificato self signed in una botta sola (ma ti perdi tutto il divertimento):
INFORMAZIONI UTILI
Per estrarre le informazioni dal certificato digitale possiamo utilizzare questo comando:
All'interno della cartella dovremmo avere questi files qua:
Cos'è il PEM e derivati...
https://qastack.it/server/9708/what-is- ... d-key-file
https://www.gabrielemerli.com/?p=429
https://noviello.it/come-creare-un-self ... -su-linux/
https://www.html.it/pag/32002/il-primo-certificato/
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -sha256 -keyout private.key -out certificato.crt
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout private.key -out certificato.crt
openssl req -x509 -days 365 -newkey rsa:2048 -keyout private.key -out certificato.crt
La informazioni riportate in questo articolo fanno riferimento alla versione 1.1.1c di OpenSSL e sono valide sia per Linux che per Windows.

1. Genero la chiave privata (senza password):
Con questo comando andremo a creare la chiave privata senza l'ausilio di una password.
Codice: Seleziona tutto
openssl genrsa -out private.key 2048
Con questo comando andremo a creare un certificato di firma digitale tramite la chiave privata che abbiamo appena creato.
Codice: Seleziona tutto
openssl req -new -key private.key -out sign_request.csr
Con questo comando andremo a creare il certificato digitale tramite la firma digitale e la chiave privata.
Codice: Seleziona tutto
openssl req -x509 -days 365 -in sign_request.csr -key private.key -out certificato.crt

Con questo comando genero la chiave privata con password:
Codice: Seleziona tutto
openssl genrsa -aes256 -out private_pwd.key 2048
Codice: Seleziona tutto
openssl rsa -in private_pwd.key -out private.key

Con questo comando crei un certificato self signed in una botta sola (ma ti perdi tutto il divertimento):
Codice: Seleziona tutto
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout private.key -out certificato.crt -subj "/C=IT/ST=VR/L=Custoza/O=Glitch Inside/OU=Dipartimento IT/CN=Glitch Inside CA/emailAddress=info@glitchinside.it"
- req indica il comando opnessl da eseguire. In questo caso, vogliamo effettuare una richiesta di emissione di certificato X.509 (X.509 CSR).
- -x509 specifica che la richiesta CSR verrà eseguita direttamente, invece di essere trasmessa successivamente ad una CA. Questo comando permette quindi la generazione di un certificato autofirmato.
- -nodes disabilita la richiesta di una password per l’accesso alla chiave privata. Poiché la chiave privata sarà utilizzata da Apache la presenza di una password richiederebbe l’inserimento della stessa da parte dell’utente amministratore ad ogni avvio del server.
- -days 365 specifica la durata temporale del certificato (1 anno in questo caso). Alla scadenza il certificato andrà rigenerato.
- -newkey rsa:2048 richiede la generazione di una chiave privata e di un certificato contemporaneamente. Inoltre, specifica l’algoritmo (RSA) e la lunghezza della chiave (2048 bit).
- -keyout specifica il percorso in cui salvare la chiave privata.
- -out specifica il percorso in cui salvare il certificato.


Codice: Seleziona tutto
openssl x509 -noout -fingerprint -text < certificato.crt > info.txt

- private.key La chiave privata del server criptata
- private_pwd.key La chiave privata del criptata
- certificato.crt Il certificato del server firmato da me stesso
- sign_request.csr La richiesta di firma del certificato
- info.txt Informazioni leggibili estratte dal certificato

https://qastack.it/server/9708/what-is- ... d-key-file
https://www.gabrielemerli.com/?p=429
https://noviello.it/come-creare-un-self ... -su-linux/
https://www.html.it/pag/32002/il-primo-certificato/
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -sha256 -keyout private.key -out certificato.crt
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout private.key -out certificato.crt
openssl req -x509 -days 365 -newkey rsa:2048 -keyout private.key -out certificato.crt