Errore nei certificati emessi dalla CA Let’s Encrypt a causa del certificato scaduto DST Root CA X3

I nostri lettori più affezionati ricorderanno certamente che siamo stati tra i primi in Italia a parlare della Certification Authority gratuita Let’s Encrypt, nata il 12 aprile 2016. Da allora la CA ha emesso milioni di certificati (anche SAN e wildcard) e ha il grosso vantaggio di avere tantissimi client che possiamo utilizzare per interfacciare i nostri applicativi. Trovate tutti gli articoli che abbiamo scritto utilizzando la chiave di ricerca Hai cercato Let’s Encrypt – ICT Power

Figura 1: Let’s Encrypt è un organizzazione senza scopo di lucro che emette certificati digitali SSL

Al momento del lancio, più di 5 anni fa, la CA aveva ottenuto una cross-signature da Identrust, come annunciato nell’articolo Let’s Encrypt is Trusted – Let’s Encrypt (letsencrypt.org). Questo le ha permesso di poter emettere certificati che fin da subito venivano considerati attendibili dalla maggior parte dei computer.

Per capire esattamente di cosa stiamo parlando vi invito a leggere la pagina X.509 – Wikipedia dove viene spiegato come funziona lo standard X.509, usato per definire il formato dei certificati a chiave pubblica (PKC) e delle autorità di certificazione (CA).

Senza scendere troppo nel dettaglio, esaminando come una catena di certificati viene costruita e validata, si nota che un certificato può fare parte di diverse catene di certificati, al più tutte valide. Questo grazie ai cross-certificate. Si possono infatti generare più certificati per una CA con lo stesso soggetto e chiave pubblica, ma essere firmati con diverse chiavi private, da diverse CA.

Nel diagramma sotto ogni rettangolo rappresenta un certificato, con il soggetto in grassetto. A → B significa “A è stato firmato da B” (più precisamente, “A è stato firmato dalla chiave privata corrispondente alla chiave pubblica nel certificato B”). I certificati con lo stesso colore (ad eccezione di quelli trasparenti) contengono la stessa chiave pubblica.

Figura 2: Diagramma di un cross-certificate

I certificati di Root di Let’s Encrypt sono scaricabili dalla pagina Chain of Trust – Let’s Encrypt (letsencrypt.org)

Figura 3: Gerarchia dei certificati della Certification Authority Let’s Encrypt

Il vecchio certificato di sicurezza digitale DST Root CA X3 di Let’s Encrypt è però scaduto il 30 settembre 2021 alle ore 16:01:15 e ha causato guasti ed errori a diversi milioni di utenti. Nello specifico, ad avere problemi sono i dispositivi che utilizzano una versione di OpenSSL 1.0.2 a causa di un bug che impedisce la corretta gestione dei certificati con firma incrociata nel caso uno dei certificati radice coinvolti nella firma scade, anche se esistono altre catene di certificazione valide.

Già diversi mesi prima Let’s Encrypt aveva avvisato della scadenza i propri utenti e in una pagina apposita che trovate al link DST Root CA X3 Expiration (September 2021) – Let’s Encrypt (letsencrypt.org)

Let’s Encrypt utilizza come certificato di Root ISRG Root X1, che in molti computer è ormai distribuito da tempo. I browser moderni e i dispositivi considerano attendibili i certificati emessi da Let’s Encrypt perché è presente il Root Certificate nella lista dei certificati Trusted Root Certification Authority dei loro dispositivi.

Problema

Nel mio caso, In windows Server 2016 nonostante avessi effettuato tutti gli aggiornamenti, il certificato di Root ISRG Root X1 non era presente e ricevevo un errore a causa del certificato DST Root CA X3 scaduto.

Dopo aver creato il certificato per il mio server con la procedura Generazione di certificati digitali pubblici utilizzando la Certification Authority gratuita Let’s Encrypt e PowerShell – ICT Power ho provveduto ad installarlo sul mio Windows Server 2016, utilizzando il file fullchain.pfx

Il file fullchain.pfx contiene al suo interno tutta la catena di certificati di Root e Intermediate
Certification
Authority necessari a considerarlo attendibile.

Figura 4: Il file fullchain.pfx contiene il certificato e tutta la catena di certificati di Root e Intermediate
Certification
Authority necessari a considerarlo attendibile

Una volta installato il certificato però mi sono accorto che non era considerato attendibile perché il certificato di Root non era più valido.

Figura 5: Il certificato DST Root CA X3 risulta non valido

Figura 6: Il certificato DST Root CA X3 è scaduto il 30 settembre 2021

A questo punto, sapendo che il certificato è cross-signed, mi sono procurato il certificato di Root ISRG Root X1 direttamente dal sito di Let’s Encrypt e l’ho messo nel repository delle Root Certification Authority. Dovete scaricare il certificato SELF-SIGNED

Figura 7: Download del certificato self-signed di ISRG Root X1

Figura 8: Installazione del certificato di Root di ISRG Root X1 nel repository Trusted Root Certification Authority

Dopo aver inserito il certificato di Root ISRG Root X1 il problema si è risolto e il mio certificato è stato considerato valido.

Figura 9: Il certificato è ora considerato attendibile

Conclusioni

Let’s Encrypt è la più grande autorità di certificazione gratuita al mondo e negli ultimi anni ha emesso più di due miliardi di certificati digitali. Il certificato DST Root CA X3 è stato rilasciato in collaborazione con IdentTrust e da poco è scaduto. Nonostante su alcuni computer sia già presente il certificato della CA ISRG Root X1, può capitare che in alcuni non sia disponibile e debba essere distribuito manualmente.