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.