Un certificato Let's Encrypt si rinnova da solo ogni sessanta giorni senza che nessuno se ne accorga - finché una modifica fatta mesi prima non blocca la convalida. Il fallimento è silenzioso; il primo segnale di solito è un avviso del browser.

Veda la scadenza vera

echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -dates

I tre ostacoli

  • Un redirect che intercetta la richiesta di convalida. Il controllo è una semplice richiesta HTTP a /.well-known/acme-challenge/. Una regola generale da http a https che reindirizza anche quel percorso lo rompe.
  • Il record DNS si è spostato. Il dominio ora punta altrove, quindi il controllo arriva a un server che di quella sfida non ha mai sentito parlare.
  • Un firewall o un WAF che blocca la porta 80. Chiudere la 80 perché "ormai è tutto https" chiude proprio la porta da cui passa il rinnovo.

Lasci passare la sfida

location ^~ /.well-known/acme-challenge/ {
    root /var/www/html;
    try_files $uri =404;
}

Quel blocco va prima della regola di redirect, così la sfida riceve risposta e tutto il resto continua ad andare su https.

Forzi un rinnovo e lo guardi

certbot renew --dry-run

La prova a vuoto compie tutto lo scambio senza consumare quota. Se passa, passerà anche quella vera.

Let's Encrypt limita i fallimenti ripetuti. Corregga la causa e provi con --dry-run; rilanciare il comando vero in un ciclo la chiuderà fuori per ore.
Sull'hosting EGPHP il rinnovo lo gestiamo noi, e questa pagina riguarda un VPS che gestisce lei. Se un certificato gestito dovesse mai mostrare un avviso, è un ticket all'assistenza, non una modifica di configurazione.