Cosa succede quando un certificato scade
Un certificato SSL/TLS scaduto fa apparire al browser l'errore NET::ERR_CERT_DATE_INVALID o SEC_ERROR_EXPIRED_CERTIFICATE. La pagina non si apre, gli utenti vedono un'avviso rosso a tutto schermo e devono cliccare su Avanzate > Procedi per ignorare l'errore (cosa che la maggior parte non fa). Per un sito di produzione, ogni minuto di certificato scaduto è perdita di traffico, fiducia e conversioni.
Effetti collaterali oltre al browser
- API REST consumate da app mobile o server-to-server smettono di funzionare
- Cron job che chiamano webhook restituiscono errori SSL
- Webhook in entrata da provider esterni (Stripe, PayPal, Mailchimp) vanno in failure retry
- Webmail e client di posta perdono connessione
- VPN basate su TLS rifiutano l'autenticazione
- Notifiche push iOS/Android possono interrompersi
Verifica rapida
Per confermare che il problema sia effettivamente la scadenza:
echo | openssl s_client -connect tuosito.it:443 2>/dev/null | openssl x509 -noout -dates
Output tipico: notBefore=... e notAfter=.... Se notAfter è nel passato, è scaduto. Anche un browser desktop mostra la data nei dettagli del certificato (lucchetto > Cert details).
Procedura di rinnovo urgente — Let's Encrypt
Se usi Let's Encrypt e il cronjob di rinnovo automatico è saltato:
- SSH al server
certbot renew --force-renewal- Se fallisce,
certbot certonly --force-renewal -d tuodominio.it -d www.tuodominio.it - Verifica i nuovi file in
/etc/letsencrypt/live/tuodominio.it/ - Ricarica il web server:
nginx -s reloadosystemctl reload apache2
Tempo tipico: 2-5 minuti se il dominio è già validato; più lungo solo se ci sono problemi DNS o di webroot.
Procedura di rinnovo urgente — CA commerciale
Con CA come DigiCert, Sectigo, GlobalSign:
- Genera una nuova CSR sul server (o riusa quella esistente)
- Accedi al pannello cliente della CA
- Avvia un renewal dal certificato scaduto
- Carica la CSR e seleziona il metodo di validazione (DNS, file, email)
- Per certificati DV la validazione richiede 5-30 minuti
- Scarica il certificato firmato + chain intermedia
- Installa sul server e ricarica
Tempo realistico: 30-90 minuti per DV, ore per OV, giorni per EV. Per emergenze EV alcune CA offrono rush issuance a pagamento.
Soluzione tampone: certificato emergenza
Se la CA commerciale non emette in tempo, puoi attivare temporaneamente un Let's Encrypt sull'apex e sui sottodomini critici, in attesa che la CA rilasci il cert'ufficiale. È un workaround comune per evitare downtime prolungato.
Diagnosi cause root
Una volta ripristinato il servizio, capisci perché è successo:
- Cron di rinnovo automatico fermo o malfunzionante
- Quote rate-limit di Let's Encrypt superate
- Cambio DNS che ha rotto la validazione
- Notifiche email del CA finite in spam
- Cambio referente tecnico, nessuno ha ricevuto l'alert
- Configurazione del web server che non viene reloadata dopo il rinnovo
Prevenzione futura
- Configura monitoring esterno (UptimeRobot, Pingdom, StatusCake) che controlla la scadenza ogni giorno e manda alert a 30, 14, 7, 3, 1 giorni dalla scadenza
- Centralizza la gestione dei certificati su un solo team con responsabilità chiare
- Automatizza con Certbot, acme.sh o un controller Kubernetes (cert-manager)
- Tieni un certificate inventory in un foglio o tool dedicato
- Verifica trimestralmente che gli alert email arrivino al referente attuale
Strumenti di monitoraggio
- certbot-renew.timer integrato nel pacchetto Debian/Ubuntu
- acme.sh con notify-hook personalizzato
- SSL Labs Server Test manuale
- checkssl CLI con soglia di alert
- Nagios/Zabbix plugin check_ssl_cert
Hai bisogno di aiuto?
Se vuoi gestione SSL dal team di G Tech Group, scrivici tramite il modulo di contatto.