Tutorial > Creare un Certificato SSL Self-Signed su Ubuntu 18.04

Creare un Certificato SSL Self-Signed su Ubuntu 18.04

Pubblicato il: 13 ottobre 2019

Certificati SSL Security SSL Ubuntu

I certificati SSL Self-Signed sono certificati autofirmati che vengono utilizzati prevalentemente in ambiente di sviluppo sulla nostra macchina locale o il nostro server remoto, quando non abbiamo a disposizione un certificato rilasciato da un'autorità di certificazione esterna.

Questi certificati autofirmati vengono raramente impiegati per l'utilizzo in produzione proprio perchè non garantiscono un livello di attendibilità adeguato, non essendo verificati da una Certification Authority.

Se invece ti interessa ottenere un certificato SSL gratuito rilasciato da un'autorità di certificazione esterna puoi seguire la nostra guida su Come mettere in sicurezza Apache con Let's Encrypt e Ubuntu 18.04.

Per prima cosa dovrai connetterti al tuo server tramite una connessione SSH. Se non l’hai ancora fatto, ti consigliamo di seguire la nostra guida per connetterti in sicurezza con il protocollo SSH. In caso di server locale puoi passare al punto successivo e aprire il terminale del tuo server.

Creare una Chiave Privata

Innanzitutto dovrai creare una chiave privata che servirà a creare il tuo certificato pubblico.

Per creare una chiave privata dovrai utilizzare il client OpenSSL: 

$ sudo openssl genrsa -aes128 -out privata.key 2048

N.B. Con questo comando specifichi la creazione di una chiave privata con una lunghezza di 2048 bit che verrà salvata nel file privata.key.

Generating RSA private key, 2048 bit long modulus

....+++

...................+++

e is 65537 (0x010001)

Enter pass phrase for privata.key:

Verifying - Enter pass phrase for privata.key:

Ti verrà chiesto di proteggere la chiave con una password.

Creare una Richiesta di Firma del Certificato (CSR)

Dopo aver generato la tua chiave privata, dovrai creare una richiesta di firma del certificato (CSR) che servirà a specificare i dettagli che saranno inclusi nel certificato.

$ sudo openssl req -new -days 365 -key privata.key -out richiesta.csr

OpenSSL ti chiederà di specificare le informazioni del certificato che dovrai completare 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) []: Roma

Organization Name (eg, company) [Internet Widgits Pty Ltd]: Mia Società

Organizational Unit Name (eg, section) []: Sicurezza

Common Name (e.g. server FQDN or YOUR name) []: prova.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 []:

Ti verrà chiesto di inserire una password per la richiesta di firma.

Sarà creato il file richiesta.csr che conterrà tutte le informazioni inserite utili alla generazione del certificato.

Generare il Certificato SSL

A questo punto puoi procedere con la generazione del certificato:

$ sudo openssl x509 -in richiesta.csr -out certificato.crt -req -signkey privata.key -days 365

Dove:

  • al parametro -in specificherai la richiesta di firma del certificato

  • al parametro -out specificherai il nome del file che conterrà il certificato

  • al parametro -signkey specificherai la tua chiave privata

  • al parametro -days specificherai il numero di giorni di validità del certificato che andrai a creare

Inserisci la password relativa al file privata.key precedentemente generato.

Se la procedura di creazione è stata eseguita con successo, sarà stampata a video la scritta:

Signature ok

seguita dai dettagli del certificato specificati in precedenza.

Infine avremo ottenuto il file certificato.crt che potremo usare in molteplici ambiti, come ad esempio per proteggere la connessione verso un web server.