I certificati autofirmati SSL sono certificati autofirmati utilizzati principalmente nello sviluppo sul nostro computer locale o sul nostro server remoto, quando non è disponibile alcun certificato da un'autorità di certificazione esterna.
Questi certificati autofirmati sono usati raramente per la produzione in particolare perché non garantiscono un livello di affidabilità adeguato, in quanto non sono verificati da un'Autorità di Certificazione.
Se invece sei interessato ad ottenere un certificato SSL gratuito emesso da un'autorità di certificazione esterna, puoi seguire la nostra guida su Come proteggere Apache con Let's Encrypt e Ubuntu 18.04.
Per prima cosa, connettiti al tuo server tramite una connessione SSH. Se non l'hai ancora fatto, ti consigliamo di seguire la nostra guida per connetterti in modo sicuro con SSH. Nel caso di un server locale, vai al passaggio successivo e apri il terminale del tuo server.
Creazione di una chiave privata
Prima di tutto, crea una chiave privata per creare il tuo certificato pubblico.
Per creare una chiave privata, usa il client OpenSSL:
$ sudo openssl genrsa -aes128 -out private.key 2048
NB Questo comando serve per specificare la creazione di una chiave privata con una lunghezza di 2048 bit che verrà salvata nel file private.key.
Generating RSA private key, 2048 bit long modulus
....+++
...................+++
e is 65537 (0x010001)
Enter pass phrase for privata.key:
Verifying - Enter pass phrase for private.key:
Ti verrà chiesto di proteggere la chiave con una password.
Creazione di una richiesta di firma del certificato (CSR)
Dopo aver generato la tua chiave privata, crea una richiesta di firma del certificato (CSR) che specificherà i dettagli per il certificato.
$ sudo openssl req -new -days 365 -key private.key -out request.csr
OpenSSL ti chiederà di specificare le informazioni sul certificato che devono essere completate in questo modo:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: IT
State or Province Name (full name) [Some-State]: Lazio
Locality Name (eg, city) []: Rome
Organization Name (eg, company) [Internet Widgits Pty Ltd]: My Society
Organizational Unit Name (eg, section) []: Security
Common Name (e.g. server FQDN or YOUR name) []: example.it
Email Address []: [email protected]
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: An optional company name []:
Vi verrà chiesto di proteggere la richiesta del certificato con una password.
Verrà creato il file request.csr con n tutte le informazioni utili inserite per la generazione del certificato .
Generazione del certificato SSL
A questo punto, procedi con la generazione del certificato:
$ sudo openssl x509 -in request.csr -out certificate.crt -req -signkey private.key -days 365
Dove :
per il parametro -in specificare la richiesta di firma del certificato
per il parametro -out specificare il nome del file che conterrà il certificato
per il parametro -signkey specifica la tua chiave privata
per il parametro -days specificare il numero di giorni di validità del certificato che si sta per creare
Inserisci la password di private.key.
Se la procedura di creazione è stata eseguita correttamente sullo schermo apparirà questa scritta:
Signature ok
seguito dai dettagli del certificato sopra specificati.
Infine, il file certificate.crt è pronto per essere utilizzato in diversi modi, ad esempio per proteggere la connessione a un server web.