En aquest xicotet article t'explique un script BASH que m'he fet per a fer la comprovació, al vol, de molts certificats de validació de domini que instal·lem al treball per a l'https de les webs.
A banda de gestionar el programari dels projectes web i els dominis, també gestionem els certificats de validació de domini que solen caducar una vegada a l'any, i ací he anat fent-me un automatisme per a que la comprovació de la caducitat siga més ràpida i senzilla enlloc d'anar obrint un navegador i anar obrint les més de 115 pàgines web i comprovar manualment cada un dels certificats SSL.
Doncs bé, per a comprovar la validesa d'un únic certificat SSL de la web "www.todolella.es" (amb HTTPS) des de la terminal farem:
~# domini="www.todolella.es"
~# echo -n Q | openssl s_client -servername $domini -connect $domini:443 | openssl x509 -noout -dates
El resultat:
Si ara vullguera fer la comprovació de 3 dominis, per exemple "teresa.es", "todolella.es" i "cabanes.es", farem:
~# for i in teresa.es todolella.es cabanes.es;
~# do
~# echo -n Q | openssl s_client -servername $i -connect $i:443 | openssl x509 -noout -dates;
~# done
El resultat:
Si tenim molts dominis, podem crear un fitxer llistat.txt amb tot el llistat dels dominis, i aleshores podem anar fent les comprovacions de cada un dels dominis recorrent línia a línia el llistat de dominis.
Crearem el fitxer llistat.txt i afegirem tots els dominis que necessitem comprovar. Jo, en aquest exemple, un llistat amb 21 dominis que vull comprovar. Fixat que funciona fins i tot si fiquem majúscules i/o minúscules. L'script interpreta bé els noms i els agafa en minúscules tots automàticament:
~# cat llistat.txt
todolella.es
ToGa.es
Toras.es
elToro.es
TorralbadelPinar.es
Torrechiva.es
latorredenbesora.es
latorredendomenec.es
Traiguera.es
lesuseres.es
Vallat.es
Valldalba.es
ValldeAlmonacid.es
Vallibona.es
Villamalur.es
VilanovadAlcolea.es
VilardeCanes.es
Villores.es
Vistabelladelmaestrat.es
ZoritadelMaestrazgo.es
lavallduixo.es
~#
I ara l'script BASH serà el següent. He afegit uns retocs amb línies separadores ("=====") i també un retoc estètic de color en la variable notAfter, la que mostra la data de caducitat, per a una millor visualització:
#!/bin/bash
fitxer=$(
do
echo -n Q | openssl s_client -servername $i -connect $i:443 | openssl x509 -noout -dates; | GREP_COLOR='01;31' egrep -i --color=always 'notAfter|$'
done
El resultat:
EXECUCIÓ DE L'SCRIPT
Si volem crear aquest script de manera executable per a comprovacions futures, ho desarem a un fitxer amb nom script.sh per exemple. A continuació haurem de donar-li permisos chmod 700 ./script.sh i l'executarem amb ./script.sh directament o modificant la ruta del BASH en la primera línia i ja està.