Prima di iniziare, il tuo dominio deve puntare all'IP del VPS con un record A (come farlo). Senza questo, il certificato non può essere emesso. Negli esempi, il dominio è miodominio.it.
1. Installa Nginx e apri le porte
apt install -y nginx
ufw allow 'Nginx Full'
Se apri l'IP del VPS nel browser, vedrai già la pagina di benvenuto di Nginx.
2. Il tuo sito
mkdir -p /var/www/miodominio
echo '<h1>Funziona!</h1>' > /var/www/miodominio/index.html
Crea /etc/nginx/sites-available/miodominio:
server {
listen 80;
server_name miodominio.it www.miodominio.it;
root /var/www/miodominio;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
ln -s /etc/nginx/sites-available/miodominio /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
nginx -t controlla che non ci siano errori prima di applicare qualsiasi modifica.
3. Il certificato SSL
apt install -y certbot python3-certbot-nginx
certbot --nginx -d miodominio.it -d www.miodominio.it
Ti chiederà un indirizzo email (per avvisarti se qualcosa non va) e di accettare le condizioni. Certbot configura Nginx da solo, compreso il reindirizzamento da HTTP a HTTPS.
4. Rinnovo automatico
I certificati durano 90 giorni e certbot li rinnova da solo. Verifica che il rinnovo funzionerà:
certbot renew --dry-run
Se qualcosa non funziona
- Certbot non riesce a validare il dominio: verifica con
nslookup miodominio.itche punti al tuo IP e che la porta 80 sia aperta. - Cloudflare: funziona anche con la nuvola arancione; se dà problemi in fase di emissione, metti la nuvola in grigio, emetti il certificato e rimettila in arancione.
- Errori 502: se Nginx fa da proxy verso un'applicazione (Node, PHP...), quell'applicazione non è avviata o è in ascolto su un'altra porta.