Let's Encrypt è un'autorità di certificazione (CA) gratuita e aperta. Fornisce un modo semplice per ottenere, installare e rinnovare certificati TLS/SSL gratuiti.
Qui a LinuxAPT, come parte dei nostri servizi di gestione del server, aiutiamo regolarmente i nostri clienti a eseguire query Nginx correlate.
In questo contesto, esamineremo come ottenere e installare gratuitamente il certificato SSL Let's Encrypt e Secure Nginx sul server Ubuntu 18.04.
Come installare Let's Encrypt su Ubuntu?
Prima di eseguire questa procedura di installazione, assicurarsi che siano soddisfatti i seguenti requisiti:
- Server Ubuntu con un utente non root con privilegi sudo.
- Nginx deve essere installato e configurato, come mostrato in questa Guida.
- Disponi di un blocco server Nginx per il tuo dominio, come mostrato in questa Guida.
- Il tuo nome di dominio dovrebbe puntare all'indirizzo IP del tuo server.
Ora segui i passaggi per utilizzare lo strumento Certbot per ottenere un certificato SSL gratuito per Nginx sul server Ubuntu 18.04.
1. Installa il client Certbot
Puoi ottenere, installare e rinnovare facilmente i certificati SSL Let's Encrypt, utilizzando il pacchetto client Certbot. È utile configurare i server Web per utilizzare i certificati SSL. Il pacchetto certbot è incluso nei repository Ubuntu predefiniti.
Prima di tutto, aggiorneremo l'indice dell'elenco dei pacchetti digitando:
$ sudo apt update
Ora installa il client Certbot eseguendo il comando seguente:
$ sudo apt install python-certbot-nginx
Inoltre, puoi verificare che certbot sia installato correttamente o meno digitando:
$ certbot --version
2. Configura Firewall
Se il tuo server è protetto dal firewall UFW, devi regolare il firewall per consentire il traffico HHTPS.
Per vedere le impostazioni correnti per tipo:
$ sudo ufw status
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
Per ottenere il traffico HTTPS, devi consentire il profilo Nginx Full ed eliminare la quota ridondante del profilo HTTP Nginx:
$ sudo ufw allow 'Nginx Full'
$ sudo ufw delete allow 'Nginx HTTP'
Ora lo stato apparirà come di seguito:
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx Full (v6) ALLOW Anywhere (v6)
3. Ottieni il certificato SSL Let's Encrypt su Nginx
Puoi ottenere certificati SSL in più modi.
io. Qui utilizzeremo il client certbot per ottenere un certificato SSL:
$ sudo certbot --nginx -d example.com -d www.example.com
Qui richiediamo ad esempio i domini example.com e www.example.com. Se è la prima volta che si installa, ti verrà chiesto di inserire l'indirizzo e-mail e di accettare termini e condizioni. L'indirizzo e-mail inserito verrà utilizzato per l'invio di avvisi e-mail relativi al rinnovo e alla scadenza SSL.
Successivamente, se la convalida ha esito positivo, ti verrà chiesto di configurare le impostazioni HTTPS:
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
ii. Seleziona l'opzione 1 o 2 secondo la tua scelta e premi Invio per continuare. Nginx Server Blocks si aggiornerà in base all'opzione selezionata e ricaricherà Nginx per rendere effettive le nuove impostazioni.
Infine, il tuo dominio è protetto con il certificato Let's Encrypt SSL. Puoi verificare visitando il tuo sito con protocollo HTTPS.
Come impostare il rinnovo automatico per il certificato SSL Let's Encrypt?
I certificati Let's Encrypt SSL hanno un periodo di vita breve di 90 giorni, quindi è necessario rinnovarli prima che scadano.
io. Puoi rinnovare il certificato SSL prima che scada digitando:
$ sudo certbot renew
ii. Inoltre, puoi impostare il processo di rinnovo automatico per i certificati SSL Let's Encrypt aggiungendo un cronjob. Esegui il comando seguente per aprire crontab:
$ sudo crontab -e
iii. Quindi, aggiungi la riga sottostante alla fine del file. Eseguirà il comando due volte al giorno e si rinnoverà se il certificato sta per scadere:
0 */12 * * * root test -x /usr/bin/certbot -a ! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew
iv. Salva e chiudi il file.
v. Puoi anche verificare il processo di rinnovo automatico di certbot digitando:
$ sudo certbot renew --dry-run