Come configurare Let’s Encrypt con nginx

La procedura è davvero easy, vi basterà installare certbot con:

sudo apt install certbot

Una volta installato eseguite:

sudo certbot certonly

Dovrebbe in automatico generarvi un certificato (seguite i passaggi e inserite mail e dominio). E una volta terminato i due file dovrebbero trovarsi qui:

ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

Ora modificate il file di configurazione di nginx:

sudo nano /etc/nginx/sites-available/default

E dovrete fare in modo che la porta 80 faccia un redirect alla 443 e aggiungere un server alla 443:

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name example.com www.example.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;
    include snippets/ssl-example.com.conf;
    include snippets/ssl-params.conf;
}

Ovviamente dovrete anche controllare che il vostro firewall permetta TCP alla porta 443, nel caso usiate iptables (qui per vedere l’elenco):

sudo iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT

Controllate che sia tutto ok su nginx con:

sudo nginx -t

Se passate il test, eseguite:

sudo service nginx restart

Per rinnovare il certificato vi basterà eseguire:

sudo cerbot renew

Mentre se volete che sia automatizzato con crontab:

sudo crontab -e

Ed incollate:

30 2 * * * /usr/bin/certbot renew --noninteractive --renew-hook "/bin/systemctl reload nginx" >> /var/log/le-renew.log

Pubblicato

in

da