LINUX

Come configurare Nginx con Let’s Encrypt usando ACME su Ubuntu 20.04

In un tutorial precedente, ho descritto come ottenere un certificato SSL/TLS gratuito da Let’s Encrypt utilizzando Certbot.

In questo tutorial, vorremmo mostrarti un altro modo per ottenere e rinnovare facilmente un certificato SSL/TLS gratuito da Let’s Encrypt utilizzando acme.sh script su Ubuntu 20.04.

Se non disponi ancora di un server Web NGINX funzionante, ecco una semplice guida all’installazione di NGINX che puoi seguire.

Ottieni acme.sh

Il acme.sh Lo script della shell automatizza l’emissione e il rinnovo dei certificati gratuiti da Let’s Encrypt. Puoi ottenere lo script acme.sh scaricandolo direttamente dal web o clonando il suo progetto git.

Scarica acme.sh dal web

Eseguire uno dei due comandi seguenti per scaricare ed eseguire lo script acme.sh.

$ curl https://get.acme.sh | sh

O

$ wget -O -  https://get.acme.sh | sh

Di seguito è riportato un esempio di ciò che puoi aspettarti quando lo script viene eseguito.

$ wget -O -  https://get.acme.sh | sh
 --2021-02-16 11:55:47--  https://get.acme.sh/
 Resolving get.acme.sh (get.acme.sh)… 2606:4700:3032::6815:223e, 2606:4700:3031::ac43:c710, 172.67.199.16, …
 Connecting to get.acme.sh (get.acme.sh)|2606:4700:3032::6815:223e|:443… connected.
 HTTP request sent, awaiting response… 200 OK
 Length: unspecified [text/html]
 Saving to: ‘STDOUT’
 [ <=>                ]     937  --.-KB/s    in 0s 
 2021-02-16 11:55:47 (11.8 MB/s) - written to stdout [937]
 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                  Dload  Upload   Total   Spent    Left  Speed
 100  204k  100  204k    0     0  3350k      0 --:--:-- --:--:-- --:--:-- 3350k
 [Tue 16 Feb 2021 11:55:47 AM UTC] Installing from online archive.
 [Tue 16 Feb 2021 11:55:47 AM UTC] Downloading https://github.com/acmesh-official/acme.sh/archive/master.tar.gz
 [Tue 16 Feb 2021 11:55:47 AM UTC] Extracting master.tar.gz
 [Tue 16 Feb 2021 11:55:47 AM UTC] It is recommended to install socat first.
 [Tue 16 Feb 2021 11:55:47 AM UTC] We use socat for standalone server if you use standalone mode.
 [Tue 16 Feb 2021 11:55:47 AM UTC] If you don't use standalone mode, just ignore this warning.
 [Tue 16 Feb 2021 11:55:47 AM UTC] Installing to /home/shola/.acme.sh
 [Tue 16 Feb 2021 11:55:47 AM UTC] Installed to /home/shola/.acme.sh/acme.sh
 [Tue 16 Feb 2021 12:05:54 PM UTC] Installing alias to '/home/shola/.bashrc'
 [Tue 16 Feb 2021 12:05:54 PM UTC] OK, Close and reopen your terminal to start using acme.sh
 [Tue 16 Feb 2021 11:55:47 AM UTC] Installing cron job
 47 0 * * * "/home/shola/.acme.sh"/acme.sh --cron --home "/home/shola/.acme.sh" > /dev/null
 [Tue 16 Feb 2021 11:55:47 AM UTC] Good, bash is found, so change the shebang to use bash as preferred.
 [Tue 16 Feb 2021 11:55:48 AM UTC] OK
 [Tue 16 Feb 2021 11:55:48 AM UTC] Install success!

Clonare il progetto acme.sh git

In alternativa, esegui i comandi sottostanti uno per riga per clonare il progetto acme.sh git ed eseguire lo script.

$ git clone https://github.com/acmesh-official/acme.sh.git
$ cd acme.sh
$ ./acme.sh --install

Qualunque sia il metodo che scegli di utilizzare, una volta visualizzato il “Installazione avvenuta con successo!“, puoi chiudere la finestra del terminale e riaprirla per convalidare l’installazione.

Per visualizzare le informazioni sull’utilizzo di acme.sh, eseguire il seguente comando.

$ acme.sh -h

Puoi anche eseguire il comando seguente per verificare la versione di acme.sh.

$ acme.sh --version

Genera un certificato

Per generare un singolo certificato per un singolo dominio, eseguire il comando seguente.

Sostituire dominio tuo.com con il tuo dominio registrato. Sostituisci anche /var/www/tuodominio.com con la cartella principale del sito Web del tuo dominio, a seconda dei casi.

$ acme.sh --issue -d yourdomain.com -w /var/www/yourdomain.com

Per più domini/sottodomini che condividono la stessa cartella principale del sito Web, è possibile eseguire il seguente comando per emettere un certificato.

$ acme.sh --issue -d yourdomain.com -d www.yourdomain.com -d subdomain.yourdomain.com -w /var/www/yourdomain.com

I certificati generati verranno archiviati in ~/.acme.sh/yourdomain.com

Installa il certificato su NGINX usando acme

Dopo aver generato il certificato tramite lo script acme.sh, il passaggio successivo è installarlo su NGINX. Innanzitutto, crea una cartella in cui verrà copiato il certificato generato.

$ sudo mkdir -p /etc/nginx/certs/yourdomain.com

Eseguire il comando seguente per installare il certificato. Non dimenticare di sostituire dominio tuo.com con il tuo dominio registrato.

$ acme.sh --install-cert -d yourdomain.com --key-file /etc/nginx/certs/yourdomain.com/key.pem --fullchain-file /etc/nginx/certs/yourdomain.com/cert.pem --reloadcmd "service nginx force-reload"

Aggiorna il file di blocco del server NGINX

Il passaggio finale consiste nell’aggiornare il file di blocco del server per il tuo dominio per includere le direttive relative a SSL.
Eseguire il comando seguente per modificare il file di blocco del server.

$ sudo nano /etc/nginx/sites-available/yourdomain.com

Quindi aggiungi le seguenti righe.

listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate /etc/nginx/certs/cloudindevs.com/cert.pem;
ssl_certificate_key /etc/nginx/certs/cloudindevs.com/key.pem;

Dopo le aggiunte, il tuo file di blocco del server dovrebbe assomigliare a quello che vedi nell’immagine qui sotto. Le nuove aggiunte sono evidenziate in rosso. Si noti inoltre che le direttive di ascolto per la porta 80 sono state commentate.

Aggiorna il tuo file di blocco del server NGINX per utilizzare SSL
Aggiorna il tuo file di blocco del server NGINX per utilizzare SSL

Salva le tue modifiche e chiudi il file.

Riavvia NGINX con:

$ sudo systemctl restart nginx

Visita il tuo sito in un browser per verificare che la comunicazione sicura sia ora abilitata.

Rinnovo del certificato

I certificati emessi da Let’s Encrypt si rinnoveranno automaticamente ogni 60 giorni.

Ma se vuoi, puoi rinnovare manualmente il certificato. Eseguire il comando seguente.

$ acme.sh --renew -d yourdomain.com --force

Per interrompere il rinnovo del certificato, procedere come segue.

$ acme.sh --remove -d yourdomain.com

Aggiorna acme.sh

Si consiglia di utilizzare sempre l’ultima versione di acme.sh. Esegui il comando seguente per assicurarti che acme.sh venga aggiornato automaticamente.

$ acme.sh --upgrade --auto-upgrade

Per disabilitare l’aggiornamento automatico per acme.sh, eseguire il seguente comando.

$ acme.sh --upgrade --auto-upgrade 0

Se non desideri che acme.sh venga aggiornato automaticamente, utilizza il comando seguente per aggiornarlo manualmente.

$ acme.sh --upgrade

Conclusione

In questa guida, ho descritto i passaggi per ottenere e rinnovare certificati SSL/TLS gratuiti da Let’s Encrypt utilizzando lo script shell acme.sh su Ubuntu. Questo metodo è un’alternativa all’utilizzo dello strumento Certbot. Ci piacerebbe conoscere la tua esperienza con questi strumenti.

Related Articles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Back to top button
Close