f in x
> cd .. / HUB_EDITORIALE > Visualizza in Inglese
Sistemi Operativi & Sicurezza

SSL/TLS con Nginx e Certbot: Guida Operativa a Let's Encrypt e Rinnovo Automatico

[2026-06-18] Author: Ing. Calogero Bono

Il tuo sito manda ancora traffico in chiaro? Oppure hai un certificato SSL scaduto e i clienti vedono l'avviso “Non sicuro”? Questo è un problema concreto. Lo vediamo ogni giorno nei progetti che ci arrivano: siti configurati una volta e mai più toccati, certificati che scadono di domenica, utenti che abbandonano il carrello perché il browser grida “connessione non privata”.

Noi, di Meteora Web, di queste cose ci occupiamo da anni. Veniamo dalla contabilità e dai bilanci, e ti assicuriamo che un certificato scaduto si traduce in una voce di costo precisa: perdita di vendite, fiducia, ranking SEO. In questa guida ti portiamo dritti al punto: come configurare SSL/TLS su Nginx con Let's Encrypt e Certbot, e soprattutto come automatizzare il rinnovo – perché farlo a mano è un errore da principianti.

SSL/TLS: perché non è più un optional

Se pensi che HTTPS serva solo ai siti di e-commerce, ripensaci. Dal 2014 Google lo usa come fattore di ranking. Dal 2018 Chrome segna come “Non sicuro” qualsiasi sito HTTP. Nel 2026 non c'è più scusa: Let's Encrypt ha reso i certificati gratuiti, automatici e universali.

Un sito senza HTTPS è un sito che paga due volte: perde posizioni su Google e perde la fiducia del visitatore. Noi lo misuriamo sui clienti: dopo il passaggio a HTTPS, la durata media della sessione sale, il tasso di rimbalzo scende.

Cosa rischia chi trascura la crittografia

  • Sicurezza dei dati: password, cookie, dati di pagamento transitano in chiaro. Un utente malintenzionato in una rete Wi-Fi pubblica può intercettarli con工具 come Wireshark.
  • Ranking SEO: Google penalizza i siti HTTP. Se un concorrente ha HTTPS e tu no, perdi posizioni senza fare nulla di male.
  • Integrità dei contenuti: senza TLS, un attacco man-in-the-middle può modificare il contenuto della tua pagina – iniettare malware, reindirizzare a phishing.
  • Obblighi normativi: GDPR e norme privacy richiedono misure adeguate per proteggere i dati. HTTPS è considerato il minimo sindacale.

Let's Encrypt e Certbot: la coppia che ha democratizzato HTTPS

Let's Encrypt è un'autorità di certificazione gratuita, automatica e aperta. Rilascia certificati validi 90 giorni – volutamente brevi per spingere all'automazione. Certbot è il client ufficiale che parla con Let's Encrypt via protocollo ACME.

Sponsored Protocol

Perché 90 giorni? Perché obbligano a implementare il rinnovo automatico. Un certificato annuale ti fa illudere di poterlo rinnovare a mano, poi arriva il giorno che te ne dimentichi, e il sito va giù.

Come funziona il protocollo ACME

ACME (Automatic Certificate Management Environment) permette al tuo server di dimostrare a Let's Encrypt di controllare il dominio. La sfida più comune è http-01: Certbot crea un file su http://iltuodominio/.well-known/acme-challenge/, Let's Encrypt lo verifica e rilascia il certificato. Con Nginx, Certbot può modificare automaticamente la configurazione per risolvere la sfida.

Sponsored Protocol

Installazione e configurazione step-by-step con Nginx

Assumiamo di avere un server Linux (Ubuntu/Debian o CentOS/RHEL) con Nginx già installato e il dominio puntato al server.

Prerequisiti

  • Nginx installato e funzionante
  • Porta 80 aperta (firewall, security group)
  • Dominio con record A/AAAA che punta all'IP del server
  • Accesso sudo al server

Installazione di Certbot

Su Ubuntu/Debian:

sudo apt update
sudo apt install certbot python3-certbot-nginx

Su CentOS/RHEL (con EPEL):

sudo dnf install epel-release
sudo dnf install certbot python3-certbot-nginx

Perché python3-certbot-nginx? Contiene il plugin che interagisce direttamente con Nginx: modifica le configurazioni e gestisce la sfida ACME senza che tu tocchi manualmente i file.

Ottenere il certificato

Esegui il comando principale, specificando il dominio:

sudo certbot --nginx -d iltuodominio.com -d www.iltuodominio.com

Certbot ti chiederà un indirizzo email per le notifiche di scadenza (importante) e se vuole reindirizzare tutto il traffico HTTP verso HTTPS. Rispondi “2” per abilitare il redirect automatico.

Attenzione: se hai già una configurazione Nginx personalizzata, Certbot la modificherà. Noi consigliamo sempre di fare un backup prima:

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.backup

Configurare Nginx per SSL

Dopo l'esecuzione di Certbot, la configurazione del tuo sito dovrebbe apparire simile a questa (esempio minimo):

Sponsored Protocol

server {
    listen 443 ssl http2;
    server_name iltuodominio.com www.iltuodominio.com;

    ssl_certificate /etc/letsencrypt/live/iltuodominio.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/iltuodominio.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    root /var/www/html;
    index index.html;
}

server {
    listen 80;
    server_name iltuodominio.com www.iltuodominio.com;
    return 301 https://$server_name$request_uri;
}

Verifica che Nginx ricarichi senza errori:

sudo nginx -t
sudo systemctl reload nginx

Rinnovo automatico: il vero vantaggio

Il certificato vale 90 giorni. Non puoi stare a rinnovarlo a mano ogni tre mesi. Certbot installa automaticamente un timer systemd (o una cron job) per eseguire il rinnovo due volte al giorno (in realtà controlla se il certificato scade entro 30 giorni e lo rinnova).

Verifica del timer systemd o cron

Su sistemi con systemd (Ubuntu, CentOS moderni):

sudo systemctl list-timers | grep certbot
# oppure
sudo systemctl status certbot.timer

Dovresti vedere un timer attivo che esegue certbot.service. Se non c'è, installalo con:

sudo systemctl enable certbot.timer
sudo systemctl start certbot.timer

Su sistemi più datati o con cron:

Sponsored Protocol

sudo crontab -e
# aggiungi la riga:
0 0 * * * /usr/bin/certbot renew --quiet

Test del rinnovo

Non aspettare 30 giorni per vedere se funziona. Puoi simulare il rinnovo con:

sudo certbot renew --dry-run

Se il comando termina senza errori, il rinnovo automatico è pronto. Noi lo eseguiamo su ogni nuovo server e lo controlliamo periodicamente. Un cliente aveva il rinnovo rotto perché il certificato era stato installato con un plugin diverso — con --dry-run lo abbiamo scoperto subito.

Best practice e sicurezza ulteriore

Certbot genera già una configurazione sicura (include file options-ssl-nginx.conf). Ma ci sono accorgimenti extra che applichiamo sempre:

HSTS (HTTP Strict Transport Security)

Dice al browser di connettersi sempre via HTTPS, anche se l'utente digita http://. Aggiungi nel tuo server block:

add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;

Attenzione: con includeSubDomains, assicurati che tutti i sottodomini supportino HTTPS, altrimenti diventeranno irraggiungibili.

OCSP Stapling

Migliora i tempi di caricamento e la privacy:

ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;

Perfect Forward Secrecy e cipher moderni

Let's Encrypt suggerisce già cipher moderni, ma verifica di non usare cipher deboli. Puoi usare:

Sponsored Protocol

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;

Redirect HTTP → HTTPS pulito

Il redirect generato da Certbot va bene, ma se preferisci gestirlo manualmente, assicurati che sia un 301 e non un 302.

In sintesi — cosa fare adesso

  1. Installa Certbot con il plugin Nginx sul tuo server.
  2. Ottieni il certificato con sudo certbot --nginx -d tuodominio.com.
  3. Verifica la configurazione con sudo nginx -t e ricarica Nginx.
  4. Controlla il timer di rinnovo con sudo systemctl status certbot.timer.
  5. Testa il rinnovo con sudo certbot renew --dry-run.
  6. Applica le best practice: HSTS, OCSP Stapling, cipher aggiornati.
  7. Monitora periodicamente la scadenza con uno strumento come check-ssl o semplicemente controllando Search Console per eventuali errori di sicurezza.

Se hai un'infrastruttura complessa o preferisci una mano, noi di Meteora Web lo facciamo tutti i giorni. Quando su un server si è rotto il rinnovo automatico dei certificati SSL, l'abbiamo risolto e automatizzato senza far andare offline il cliente. Il divario digitale si colma anche così: con configurazioni pulite e solide.

Per una panoramica completa su Nginx in produzione, leggi la Guida Pillar Definitiva a Nginx.

Ing. Calogero Bono

> AUTHOR_EXTRACTED

Ing. Calogero Bono

Ingegnere Informatico, co-fondatore di Meteora Web. Esperto in architetture software, sicurezza informatica e sviluppo sistemi scalabili.
[ Read Full Dossier ]

> METEORA_WEB // WEB AGENCY

Costruiamo la presenza digitale che la tua azienda merita.

Siti web, social, pubblicità online, e-commerce e hosting performante: ingegnerizzati con metodo da ingegneri informatici a Sciacca, per tutta Italia.

> MW_JOURNAL

> READ_ALL()