+39 3662317539/+34 620899163
info@simonecosci.com

Il certificato SSL scade: cosa controllare e perché il browser dice «non sicuro»

Sviluppo Siti Web a Tenerife

Il certificato SSL scade: cosa controllare e perché il browser dice «non sicuro»

Il certificato HTTPS — il lucchetto accanto all’indirizzo del sito — è l’unica parte del tuo sito
che ha una data di scadenza stampata dentro. Non è un acquisto che si fa una volta: è un rinnovo,
e il rinnovo deve funzionare da solo. Il giorno in cui smette di funzionare non lo scopri da un
avviso: lo scopri da un cliente che ti scrive «il tuo sito dice che non è sicuro».

Questo articolo spiega quanto dura un certificato, perché nessuno ti avviserà quando sta per
scadere, e quali sono i quattro controlli che puoi fare da solo in cinque minuti.

Quanto dura, davvero

Se il tuo sito usa Let’s Encrypt — e la maggior parte dei siti oggi lo fa, perché
«we do not charge a fee for our certificates» — la durata è
breve per scelta: «Our default certificates are valid for 90 days». Esiste anche l’opzione dei
certificati a sei giorni («Subscribers can opt in to short-lived certificates which are valid for
six days»), ma è volontaria e non è il caso normale.

Novanta giorni sembrano pochi. Lo sono di proposito. La
pagina sulle durate dice perché: un certificato
che dura poco «limit[s] damage from mis-issuance and key compromise» e soprattutto «encourage[s]
automation, which is absolutely essential for ease-of-use and reliability». Novanta giorni erano
stati scelti all’inizio perché «short enough to strongly encourage automation, but long enough to
make it possible to do things manually».

La direzione è verso durate ancora più corte, ed è già scritta: Let’s Encrypt
«will be reducing the maximum lifetime of our certificates to 45 days by February 2028», perché le
regole del settore «limit certificate lifetimes to a maximum of 47 days starting on March 15, 2029».

Tradotto: se oggi il rinnovo del tuo sito è un’operazione che qualcuno fa a mano tre volte l’anno,
tra due anni sarà un’operazione da fare a mano otto volte l’anno. Non regge.

La raccomandazione ufficiale, intanto, è una riga sola: «We recommend renewing 90 day certificates
every 60 days and six day certificates every three days». Il rinnovo parte un mese prima della
scadenza, non il giorno prima. Se il tuo si sveglia il giorno prima, hai una sola occasione per
riuscire.

Nessuno ti avviserà

Questo è il punto che quasi tutte le guide in circolazione sbagliano, perché sono state scritte
prima.

Per anni Let’s Encrypt mandava un’email quando un certificato stava per scadere. Non lo fa più:
«This service ended on June 4, 2025».
E non è una pausa temporanea — «We have deleted the email addresses provided to Let’s Encrypt via
the ACME API that were stored in our CA database». L’indirizzo con cui era stato registrato il
certificato del tuo sito non esiste più nei loro archivi.

Se vuoi un avviso, oggi devi procurartelo: la raccomandazione sulla stessa pagina è «using a third
party service such as Red Sift Certificates Lite (formerly Hardenize)». Va bene quello, va bene
qualsiasi monitor che controlli la scadenza dall’esterno, va bene anche un promemoria sul
calendario. Quello che non va bene è dare per scontato che arrivi un’email, perché non arriverà.

Cosa vede il visitatore

Quando il certificato è scaduto, il visitatore non vede una pagina brutta: vede una pagina di
blocco. In Chrome il messaggio documentato è
«Your connection is not private», e di solito si
può cliccare per proseguire comunque — cosa che nessun cliente fa.

Due dettagli utili da sapere prima di andare nel panico.

Il primo: il codice di errore NET::ERR_CERT_DATE_INVALID, quello che sembra dire «certificato
scaduto», sulla pagina di assistenza di Google è documentato insieme a «Your clock is behind» e
«Your clock is ahead», ed è attribuito all’orologio del dispositivo di chi guarda. Quindi quando un
singolo cliente ti segnala quel messaggio, la prima domanda non è «è scaduto il mio certificato?»
ma «lo vedono tutti o lo vede solo lui?». Si risponde in trenta secondi aprendo il sito da un altro
telefono, su un’altra rete.

Il secondo, e questo è il caso cattivo: se il tuo sito usa l’header Strict-Transport-Security
(HSTS), il visitatore non può proseguire. La
documentazione di Mozilla
è esplicita: «If a TLS warning or error, such as an invalid certificate, occurs when connecting to
an HSTS host, the browser does not offer the user a way to proceed or “click through” the error
message». Con HSTS attivo, un certificato scaduto non è un avviso fastidioso: è il sito offline.
Vale la pena sapere se il tuo ce l’ha.

I quattro controlli

Si fanno dal browser, senza toccare niente.

  1. La data di scadenza. Clicca sul lucchetto accanto all’indirizzo e guarda i dettagli del
    certificato. Se mancano meno di trenta giorni e nessuno sa chi lo rinnova, hai trovato un
    problema.
  2. Il redirect da http://. Scrivi a mano http://tuosito.it (senza la “s”) e controlla che il
    browser finisca su https://. Se resta su HTTP, il certificato c’è ma metà dei visitatori non lo
    usa.
  3. Il www. Prova entrambe le forme: tuosito.it e www.tuosito.it. Un certificato può
    coprire tutti i nomi che serve — «a single certificate can include up to 100 identifiers (DNS
    names or IP addresses)
    » — ma solo quelli che ci sono
    stati messi dentro. Se uno dei due nomi dà errore, manca lì.
  4. I contenuti misti. È il caso in cui la pagina arriva in HTTPS ma qualche immagine o script
    dentro arriva in HTTP. Quello che succede è documentato da
    MDN: i browser
    «mitigate the risks of mixed content by auto-upgrading image, video, and audio mixed content
    requests from HTTP to HTTPS, and block insecure requests for all other resource types». Cioè le
    immagini vengono sistemate da sole, ma uno script, un font o un iframe in HTTP vengono
    bloccati. Ed è per questo che il sintomo tipico non è un avviso di sicurezza: è un pezzo di
    pagina che non funziona più e nessuno capisce perché.

Tre errori da evitare

Credere che il rinnovo funzioni perché è configurato. Un rinnovo automatico non testato è un
rinnovo che scoprirai rotto fra due mesi. Lo strumento più diffuso, Certbot, ha una prova apposta:
«you can test whether future renewals will succeed with --dry-run».
Chi gestisce il tuo server può eseguirla oggi, in dieci secondi, senza rischiare nulla. Se nessuno
l’ha mai fatta, chiedilo.

Riprovare a raffica quando qualcosa va storto. C’è un limite, e non è generoso: «up to 5
certificates can be issued per exact same set of identifiers every 7 days». Se il pulsante «rinnova
certificato» del pannello viene premuto otto volte di seguito, il risultato non è un certificato
nuovo: è una settimana di attesa. Si prova una volta, poi si legge l’errore.

Pensare che il rinnovo scatti alla scadenza. Non scatta lì. Nella documentazione di Certbot:
«as of Certbot 4.0.0, a certificate is considered ready for renewal when less than 1/3rd of its
lifetime remains». Su novanta giorni vuol dire trenta giorni prima. Quel margine di trenta giorni è esattamente il tempo che hai per accorgerti che
qualcosa non va — ed è il motivo per cui un rinnovo che parte in ritardo è già un rinnovo fragile,
anche quando funziona.

In sintesi

Il certificato non è una voce di spesa: è una cosa che si rinnova da sola finché qualcuno ha
verificato che si rinnovi da sola. I controlli di sopra li puoi fare tu stasera. Se uno dei quattro
dà un risultato che non ti torna, o se la risposta alla domanda «chi rinnova il certificato del
nostro sito?» è un silenzio, scrivici: è il tipo di cosa che si sistema una volta e poi
non si tocca più.