Introduzione

Let's Encrypt è una certification authority (CA) che automatizza gratuitamente la creazione, la validazione, il rilascio ed il rinnovo di certificati X.509 per il protocollo TLS / SSL, abilitando l'HTTPS crittografato sui server Web.

In questo tutorial, si utilizzerà Certbot per ottenere un certificato SSL gratuito per Nginx su Ubuntu e per impostare il certificato per il rinnovo automatico.

Certbot è un client automatico di facile utilizzo che recupera e distribuisce i certificati SSL / TLS per il server web.

Prerequisiti

Prima di iniziare con questa guida, dovresti avere un utente non root con i privilegi sudo impostati sul tuo server. Segui questa guida: Configurazione Iniziale su Ubuntu 18.04 LTS

Installare Certbot

Il primo passo per utilizzare Let's Encrypt per ottenere un certificato SSL è installare il software Certbot sul tuo server.

Aggiorniamo l'elenco dei pacchetti:

sudo apt update

Installiamo il seguente pacchetto che permette di gestire facilmente le sorgenti software dei produttori di software indipendenti:

sudo apt install software-properties-common

Aggiungiamo il repository ufficiale di Cerbot per ottenere i pacchetti più aggiornati:

sudo add-apt-repository ppa:certbot/certbot

Avrai bisogno di premere INVIO per accettare.

Installiamo adesso il pacchetto Certbot per Nginx:

sudo apt install python-certbot-nginx

Certbot è ora pronto per l'uso, ma per poter installare i certificati SSL per Nginx, dobbiamo verificare alcune delle configurazioni di Nginx.

Configurazione di Nginx

Certbot può configurare automaticamente i certificati SSL per Nginx, ma deve essere in grado di trovare il blocco server corretto nella configurazione. Lo fa cercando una direttiva server_name che corrisponda al dominio per cui stai richiedendo un certificato.

Se stai iniziando con una nuova installazione di Nginx, puoi aggiornare il file di configurazione predefinito.

sudo nano /etc/nginx/sites-available/default

Trova la riga server_name e sostituisci il carattere underscore: "_", con il tuo nome dominio:


. . .
server_name esempio.com www.esempio.com;
. . .

Salvare e chiudere il file.

Verificare la corretta configurazione del file:

sudo nginx -t

Riavviare Nginx:

sudo systemctl reload nginx

Certbot ora sarà in grado di trovare il blocco server corretto e aggiornarlo.

Configurazione Firewall (ufw)

Se il firewall ufw è abilitato è necessario creare una nuova regola per consentire il traffico HTTPS.

Per verificare se il firewall è attivo dare questo comando:

sudo ufw status

Per consentire il traffico HTTPS per Nginx:

sudo ufw allow 'Nginx Full'

Ottenere un certificato SSL

Certbot utilizza il plugin di Nginx per ottenere certificati SSL.

sudo certbot --nginx

L'esecuzione di questo comando ti permetterà di ottenere un certificato SSL e Certbot modificherà automaticamente la configurazione di Nginx.

Altrimenti potresti ottenere il certificato e successivamente configurare manualmente Nginx con il seguente comando:

sudo certbot --nginx certonly

Rinnovo automatico

I pacchetti Certbot sono dotati di un cron job che rinnoverà automaticamente i tuoi certificati prima che scadano. Poiché i certificati Let's Encrypt durano per 90 giorni, è altamente consigliato sfruttare questa funzionalità. È possibile verificare il rinnovo automatico dei certificati eseguendo questo comando:

sudo certbot renew --dry-run

L'installazione di Let's Encrypt utilizzando Certbot su Ubuntu 18.04 LTS è terminata.