Se gestisci un sito web con Nginx, probabilmente hai già sentito parlare di Let's Encrypt. Magari hai anche un certificato installato, ma non sei sicuro che la configurazione sia corretta. Oppure stai ancora pagando decine o centinaia di euro l'anno per un certificato SSL, quando una soluzione gratuita e automatable esiste già dal 2016. Noi di Meteora Web lo vediamo tutti i giorni: PMI che spendono soldi per certificati che potrebbero avere gratis, oppure — peggio — siti ancora in chiaro HTTP che perdono visitatori e fiducia.
Questa guida non è un manuale astratto. È quello che facciamo sui server dei nostri clienti: ottenere certificati Let's Encrypt, configurarli su Nginx, automatizzare il rinnovo e blindare la sicurezza. Partiamo dal problema concreto: un sito senza HTTPS oggi è penalizzato sui motori di ricerca, considerato insicuro dai browser e vulnerabile a intercettazioni. E la soluzione non costa nulla se non un po' di competenze tecniche.
Perché HTTPS non è più un optional per le PMI?
Google penalizza i siti HTTP. I browser mostrano avvisi di sicurezza. I dati in chiaro possono essere letti da chiunque sulla rete. Se hai un e-commerce o un modulo di contatto, stai esponendo i tuoi clienti e la tua azienda. Noi, di Meteora Web, partiamo sempre da qui: la sicurezza nelle PMI italiane è sistematicamente sottovalutata. HTTPS è il primo mattone.
Sponsored Protocol
Un certificato SSL (o meglio TLS) crittografa la connessione tra il browser e il server. Senza, chiunque sulla stessa rete (cliente, provider, attaccante) può leggere password, carte di credito, messaggi. Con Let's Encrypt, ottieni un certificato valido 90 giorni, rinnovabile automaticamente. Zero canoni a vita, zero scuse.
Come funziona Let's Encrypt rispetto ai certificati a pagamento?
Let's Encrypt è un'autorità di certificazione (CA) gratuita, automatica e aperta. Usa il protocollo ACME per verificare che tu controlli il dominio. I certificati a pagamento offrono garanzie aggiuntive (EV, OV) e validità più lunga, ma per il 99% dei siti web (ecommerce, vetrine, blog) un certificato DV (Domain Validation) di Let's Encrypt è più che sufficiente. La differenza? Zero euro e totale automazione.
Sponsored Protocol
Quando su un server si è rotto il rinnovo automatico dei certificati SSL, l'abbiamo risolto e automatizzato senza far andare offline il cliente. È un problema comune: la configurazione di default di certbot funziona, ma va testata e monitorata.
Quali passaggi seguire per ottenere e installare un certificato Let's Encrypt su Nginx?
Ecco i comandi reali che usiamo noi. Presupponiamo: server Ubuntu/Debian, Nginx già installato, dominio configurato e punti al server.
Installare Certbot e il plugin Nginx
sudo apt update
sudo apt install certbot python3-certbot-nginx -yOttenere il certificato
sudo certbot --nginx -d tuo-dominio.it -d www.tuo-dominio.itCertbot modifica automaticamente i file di configurazione di Nginx per abilitare HTTPS e reindirizzare HTTP. Se preferisci manuale, usa la modalità standalone:
sudo certbot certonly --nginx -d tuo-dominio.it -d www.tuo-dominio.itI certificati vengono salvati in /etc/letsencrypt/live/tuo-dominio.it/.
Verifica la configurazione di Nginx
sudo nginx -t
sudo systemctl reload nginxApri il tuo sito con https:// e controlla il lucchetto.
Sponsored Protocol
Come configurare Nginx per HTTPS e forzare il reindirizzamento?
Se Certbot ha già modificato i file, hai già tutto. Ma vediamo un esempio di server block pulito:
server {
listen 80;
server_name tuo-dominio.it www.tuo-dominio.it;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name tuo-dominio.it www.tuo-dominio.it;
ssl_certificate /etc/letsencrypt/live/tuo-dominio.it/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/tuo-dominio.it/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/tuo-dominio.it/chain.pem;
root /var/www/tuo-dominio.it/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# Resto della configurazione (PHP, static assets, etc.)
}Attenzione: il reindirizzamento 301 da HTTP a HTTPS è fondamentale per SEO. Non dimenticare di aggiornare anche le risorse miste (mixed content) — immagini, script, CSS caricati via HTTP.
Sponsored Protocol
Come automatizzare il rinnovo senza rischiare downtime?
Certbot installa di default un timer systemd. Puoi verificarlo con:
sudo systemctl list-timers | grep certbot
sudo systemctl status certbot.timerSe non presente, aggiungi un cron job:
sudo crontab -eAggiungi la riga:
0 3 * * * /usr/bin/certbot renew --quiet && /usr/bin/systemctl reload nginxIl rinnovo avviene automaticamente ogni 90 giorni. Il server non si ferma mai. Noi testiamo sempre il rinnovo con certbot renew --dry-run per sicurezza.
Quali header di sicurezza aggiungere dopo HTTPS?
HTTPS da solo non basta. Devi configurare gli header di sicurezza per proteggerti da attacchi comuni. Aggiungi nel server block:
# HSTS - forzare HTTPS
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
# Proteggere da clickjacking
add_header X-Frame-Options "SAMEORIGIN" always;
# Prevenire MIME-type sniffing
add_header X-Content-Type-Options "nosniff" always;
# Protezione XSS
add_header X-XSS-Protection "1; mode=block" always;
# Referrer policy
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
# Content Security Policy (da personalizzare)
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline';" always;Ricarica Nginx e testa con SSL Labs per ottenere una valutazione A+.
Sponsored Protocol
Cosa fare adesso
- Controlla subito il tuo sito: visita la versione HTTP e vedi se reindirizza a HTTPS. Se non lo fa, segui i passaggi sopra.
- Verifica il certificato: apri il lucchetto nel browser e controlla la data di scadenza. Se è prossima, esegui
certbot renew. - Testa il rinnovo automatico:
sudo certbot renew --dry-run. Se fallisce, risolvi subito. - Applica gli header di sicurezza: usa un tool online per verificare le risposte HTTP.
- Leggi la nostra guida pillar sulla sicurezza web: Sicurezza Web per Sviluppatori — La Guida Pillar Definitiva.
HTTPS non è più un lusso. È un requisito. Noi di Meteora Web lo configuriamo ogni giorno per i nostri clienti, dal dominio al fatturato. Se hai bisogno di supporto, parliamone.