Certificato SSL scaduto: che cosa vedono i visitatori

Di Fabien Hernoux 7 min di lettura

Un certificato scaduto non produce un avvertimento discreto. Produce una pagina intera, di solito rossa, che spiega che la connessione non è privata e che degli aggressori stanno forse cercando di rubare le vostre informazioni. La maggior parte dei visitatori non la attraversa. Molti ne concludono che il sito è stato violato.

Nel frattempo il vostro server sta benissimo. Serve le pagine esattamente come ieri, risponde in pochi millisecondi, e nessuno dei vostri registri segnala alcunché.

Il messaggio esatto vi dice quale dei quattro problemi avete

Prima di toccare qualsiasi cosa, leggete il codice di errore mostrato sotto il messaggio. I browser lo nascondono dietro un link «avanzate», ed è lui a contenere tutta l'informazione.

Ciò che il browser mostra Il vero problema Riparazione
ERR_CERT_DATE_INVALID Il certificato è scaduto Rinnovare e ricaricare
ERR_CERT_COMMON_NAME_INVALID Questo nome host non è coperto Riemettere includendo il sottodominio
ERR_CERT_AUTHORITY_INVALID Catena incompleta o certificato autofirmato Installare il certificato intermedio
ERR_SSL_PROTOCOL_ERROR Il servizio TLS non risponde correttamente Configurazione del server, non il certificato
Avvertimento solo su mobile Catena incompleta, quasi sempre Vedi più sotto

Le prime due righe si correggono con un comando. La terza è la più subdola e merita una sezione a sé. La quarta non è affatto un problema di certificato.

Perché capita a siti che funzionano

Il promemoria è partito verso un indirizzo che nessuno legge. Le autorità di certificazione avvisano per email, all'indirizzo inserito al momento dell'emissione: spesso una casella generica, a volte uno sviluppatore andato via due anni fa.

Il rinnovo automatico è fallito in silenzio. Il compito è programmato ed esce in errore. Niente cade rumorosamente: il certificato smette semplicemente di essere sostituito. È la causa più frequente sui server moderni, e ha tre varianti classiche.

Il certificato è stato rinnovato ma non distribuito. Un file nuovo esiste sul disco, datato oggi, perfettamente valido. Il server web tiene il vecchio in memoria, perché nessuno l'ha ricaricato. Davvero esasperante, e molto comune.

Un sottodominio è stato dimenticato. Il certificato copre esempio.it e www, ma non il negozio. che avete aggiunto a marzo. Il sito principale sta bene, e una parte del traffico va a sbattere contro un muro.

Che cosa fa un visitatore davanti a quella pagina

Non legge il codice di errore. Vede un lucchetto sbarrato, uno sfondo rosso, e una frase che parla di furto di informazioni. Tre reazioni si spartiscono l'essenziale: chiudere la scheda, tornare ai risultati di ricerca e cliccare sul successivo, oppure scrivere a qualcuno per segnalare che il vostro sito è stato violato.

Nessuna di queste tre reazioni è riparabile a posteriori. È ciò che distingue questo guasto da un errore di server ordinario: una pagina che restituisce un codice 500 o 503 inquieta un visitatore; una pagina che annuncia un tentativo di furto lo mette in fuga e gli lascia un ricordo.

Diffidate delle cifre che circolano sulla proporzione di persone che passano oltre: vengono da campioni vecchi e da contesti che non sono il vostro. Ciò che è certo è che il pulsante per continuare è volutamente nascosto dietro due clic, e che il disegno di quella pagina mira esattamente a impedire che qualcuno la attraversi.

La mezza giornata che costa di più

Il blocco compare nell'istante esatto della scadenza, spesso di notte, spesso in un fine settimana, perché è lì che i novanta giorni sono caduti. Nel tempo che qualcuno se ne accorga il lunedì mattina, il sito mostra un avvertimento di sicurezza a ogni visitatore da trentasei ore.

Nessuno vi chiamerà in quel frattempo: i vostri strumenti interni non vedranno niente, e nemmeno il vostro host, dato che dal suo punto di vista la macchina risponde perfettamente. È il guasto che più somiglia a un guasto senza esserlo, ed è per questo che rientra nello stesso riflesso dei primi quindici minuti di un incidente: guardare dall'esterno prima di guardare il codice.

Verificare in trenta secondi

Un solo comando dà la data di scadenza del certificato realmente presentato al pubblico, che non è sempre quello che gira sul vostro disco:

echo | openssl s_client -servername esempio.it -connect esempio.it:443 2>/dev/null \
  | openssl x509 -noout -dates -subject

notAfter dà la scadenza, subject e i nomi alternativi dicono quali host sono coperti. Ripetete il comando per ogni sottodominio che servite: ciascuno è una domanda distinta. Eseguitelo inoltre da una macchina che non sia la vostra: una cache locale o una voce nel vostro file hosts può mostrarvi un risultato che nessun visitatore ottiene mai.

Se non avete un terminale a portata di mano, o volete solo la cifra: il nostro lettore di certificati fa la stessa cosa dal browser, e vi dà la data, gli host coperti e lo stato della catena.

Il caso della catena incompleta

È la trappola che fa perdere più tempo, perché non si vede sulla macchina di chi verifica.

Un certificato non è solo: è firmato da un intermedio, a sua volta firmato da una radice. Il vostro server deve servire il certificato e l'intermedio. Se dimentica il secondo, i browser da scrivania spesso se la cavano, perché hanno messo l'intermedio in cache durante una visita precedente su un altro sito. I mobili, invece, rifiutano.

Risultato: il sito funziona perfettamente sulla vostra postazione, e mostra un avvertimento a una parte dei vostri visitatori. La prova si fa da un telefono in rete dati, oppure con il comando qui sopra da una macchina che non ha mai visitato il sito.

Che cosa ha cambiato la durata breve

Dieci anni fa un certificato durava un anno o più, e il promemoria in un'agenda condivisa faceva il lavoro. I certificati gratuiti di oggi durano novanta giorni, e la tendenza generale va verso durate ancora più brevi, per buone ragioni di sicurezza.

Questo sposta completamente il problema. Un rinnovo annuale è un evento di cui qualcuno si ricorda; un rinnovo trimestrale è una routine automatica che nessuno guarda. La domanda non è più quindi «chi pensa a rinnovare» ma «chi verifica che l'automatismo funzioni ancora».

È un ribaltamento che merita di essere enunciato, perché rende inutili due vecchi riflessi. Annotare la data di scadenza in un'agenda non serve più a niente: cambia quattro volte l'anno. Fidarsi del registro del rinnovo nemmeno: i tre guasti classici vi lasciano una traccia che nessuno apre, e il terzo non vi lascia nemmeno un errore.

Resta una sola verifica che conserva senso, ed è quella che guarda dall'esterno, come farebbe un visitatore.

Ciò che lo evita davvero

Sorvegliare la data di scadenza, non il compito di rinnovo. Una verifica che legge il certificato presentato dal vostro server e conta i giorni rimasti dice la verità: vede il certificato che un visitatore riceverebbe, non quello che esiste sul disco. Le tre cause qui sopra finiscono tutte nello stesso posto, e quella misura le acchiappa tutte e tre.

Avvisare con un margine vero. Trenta giorni, poi sette, poi uno. Trenta giorni bastano a riparare con calma un rinnovo rotto; un giorno basta a recuperare una distribuzione che non ha ricaricato.

Verificare ogni nome host che servite. Ogni sottodominio è una domanda di certificato distinta, e quello che si dimentica è sempre quello aggiunto dopo.

Mettere un indirizzo umano sul certificato. Non costa niente ed è l'ultima linea di difesa quando tutto il resto è stato dimenticato.

Che cosa non è

Non è una violazione, e dirlo chiaramente a chi ve la segnala evita un'ora di panico inutile. Non è un guasto del server: niente da riavviare, niente da ripristinare. E non è in primo luogo un problema di posizionamento.

Ciò che HTTPS cambia davvero per i motori è più modesto di quanto l'urgenza di quella pagina lasci credere. La ragione per riparare un certificato è il visitatore che vede rosso, non l'algoritmo.

In Expansel Monitoraggio siti Expansel interroga i tuoi siti a intervalli regolari e ti scrive appena uno smette di rispondere, o quando il certificato sta per scadere.

Domande frequenti

Il sito è davvero giù?

No. Il server serve le pagine perfettamente. È il browser a rifiutarsi di mostrarle, che per un visitatore è lo stesso, e peggio: sembra un problema di sicurezza, non un incidente tecnico.

Sono avvisato in anticipo?

Non se nessuno sorveglia. Le autorità di certificazione mandano promemoria via email all'indirizzo registrato, che molto spesso è una casella che nessuno legge da due anni.

Ai motori interessa?

Un crawler che incontra un errore di certificato non può recuperare la pagina. Qualche ora non cambia nulla; diversi giorni su un sito scansionato attivamente sono un'altra conversazione.

Non perdere mai più un backlink

Aggiungi i tuoi siti e i tuoi link: Expansel li sorveglia per te.

Inizia gratis