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 Debian 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.

Installare Certbot su Debian

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

Apriamo il seguente file per aggiungere il Stretch backports repository necessario per installare Let's Encrypt:
nano /etc/apt/sources.list

Aggiungere la seguente riga:

deb http://ftp.debian.org/debian stretch-backports main

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 -t stretch-backports

Certbot è ora pronto per l'uso.

Ottenere un certificato SSL

Certbot utilizza il plugin di Nginx per ottenere certificati SSL.

L'esecuzione di questo comando ti permetterà di ottenere un certificato SSL e Certbot modificherà automaticamente la configurazione di Nginx.
sudo certbot --authenticator webroot --installer nginx

Verranno richieste alcune informazioni:

  • Indirizzo e-mail
  • Accettare I termini del servizio
  • Nome dominio su cui installare i certificati
  • La webroot del dominio, di default /var/www/html dopo aver installato Nginx
  • Scegliere se forzare l'intero traffico verso l'HTTPS con il redirect

Altrimenti potresti ottenere il certificato e successivamente configurare manualmente Nginx con il seguente comando:
sudo certbot certonly --authenticator standalone --pre-hook "nginx -s stop" --post-hook "nginx"

Si consiglia di usare nginx -s stop per arrestare Nginx invece dei comandi come systemctl o service. Utilizzando un comando hook come questo, se si automatizza il rinnovo, Certbot si arresterà automaticamente e avvierà Nginx quando è necessario rinnovare i certificati. Nginx inizierà automaticamente a utilizzare tutti i certificati rinnovati.

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 Debian 9 è terminata.