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 16.04-17.10
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-get update
Installiamo il seguente pacchetto che permette di gestire facilmente le sorgenti software dei produttori di software indipendenti:
sudo apt-get 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.
Aggiorniamo nuovamente l'elenco dei pacchetti:
sudo apt-get update
E infine, installiamo il pacchetto Certbot per Nginx:
sudo apt-get 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 è terminata.