Controllare la data di scadenza dei certificati usati sui propri siti web

Uno script molto pratico da usare che consente di verificare la data di scadenza dei certificati digitali adoperati su tutti i siti web che si gestiscono.

L’importanza di migrare il proprio sito web da HTTP a HTTPS la conoscono anche i sassi, ormai: i dati scambiati tra client e server (e viceversa) vengono crittografati e una terza parte – postasi lungo il percorso – non può monitorare le informazioni scambiate né danneggiarle o modificarle.
Nell’articolo Passare da HTTP a HTTPS: l’importanza del certificato SSL abbiamo parlato non soltanto della migrazione a HTTPS ma anche del ruolo che riveste il certificato digitale.

Il certificato digitale deve essere emesso da un’autorità riconosciuta a livello internazionale e sostituito con uno nuovo all’approssimarsi della sua scadenza. Esso permette di attestare che il sito web HTTPS con il quale ci si sta collegando corrisponde effettivamente all’identità viene dichiarata al browser.
Anche se in molti parlano ancora di certificati SSL, sarebbe meglio usare oggi il termine TLS perché esso fa riferimento al protocollo crittografico più recente e sicuro che viene utilizzato per cifrare i dati scambiati via HTTPS.

L’utilizzo di SSL, TLS 1.0 e TLS 1.1 viene ormai caldamente sconsigliato e viene suggerito di ricorrere almeno al protocollo TLS 1.2 provvedendo alla disattivazione lato server del supporto per SSL. Quest’ultimo, infatti, soffre di diverse vulnerabilità – via a via emerse nel corso del tempo – che possono portare all’esposizione di dati personali e all’annullamento dei benefici derivanti dall’adozione della crittografia: I principali browser abbandoneranno il supporto per i protocolli TLS 1.0 e TLS 1.1 nel 2020.

Come controllare la data di scadenza dei certificati digitali di più siti web

Quanto accaduto nei giorni scorsi a Mozilla, che non aveva correttamente rinnovato un certificato intermedio portandolo colpevolmente a scadenza (vedere Estensioni di Firefox non funzionano: versione 66.0.4 risolve il problema, persiste in Tor Browser), risulta fondamentale controllare che i certificati che si usano su tutti i propri siti web siano sempre perfettamente validi.

Se si fosse webmaster o comunque professionisti che gestiscono decine di siti su domini differenti, risulta complicato ricordarsi delle date di scadenza di ogni certificato.
Alcuni provider, come quelli che offrono servizi in hosting, provvedono a rinnovare automaticamente i certificati digitali dei loro clienti ma chi opera sul cloud o su server dedicati deve procedere autonomamente e in modo manuale.

Per controllare la data di scadenza dei certificati digitali usati su decine di siti web è possibile usare un semplice script avviabile dalla finestra del terminale Linux o dalla bash Linux integrabile in Windows con WSL: Eseguire programmi Linux su Windows, anche con interfaccia grafica.

Per procedere è sufficiente digitare i seguenti comandi in corrispondenza del prompt della finestra del terminale:

wget https://raw.githubusercontent.com/Matty9191/ssl-cert-check/master/ssl-cert-check
sudo chmod +x ssl-cert-check
./ssl-cert-check

In questo modo si scaricherà lo script che permette di verificare le date di scadenza e lo stato di ciascun certificato digitale ed inoltre si otterrà la lista delle opzioni utilizzabili.

Digitando il comando seguente si creerà un nuovo file di testo chiamato ssldomains che si potrà usare per specificare la lista dei domini oggetto di verifica.
Come nell’immagine, i domini andranno indicati nella forma corretta (www.google.it è diverso da google.it) insieme con la porta utilizzata dal server web (di solito 443 per HTTPS).

Premendo le combinazioni di tasti CTRL+O quindi CTRL+X si salverà il file di testo nella cartella corrente e si chiuderà l’editor nano.
L’errore che molti fanno consiste nel non aggiornare il certificato associato al nome a dominio con o senza “www” limitandosi solo a uno dei due.

Impartendo il comando seguente, lo script controllerà uno a uno i certificati digitali per i domini indicati nel file ssldomains. Per i certificati che scadono entro i successivi 60 giorni (è possibile scegliere un arco temporale diverso), lo script mostrerà l’indicazione Expiring mentre comparirà Expired accanto a quelli eventualmente già scaduti:

./ssl-cert-check -f ssldomains -x 60

Il comando ./ssl-cert-check -a -f ssldomains -q -x 60 -e admin@nomedeldominio.abc consente di ricevere un’email quando si approssimasse la scadenza di uno o più certificati.

Ti consigliamo anche

Link copiato negli appunti