Script para comprobar fecha de caducidad de certificados SSL de varios sites

En caso de tener que encargarnos de la renovación de certificados SSL de varios sites de servidores web Apache, Nginx, etc… resulta tedioso tener que ir comprobando las fechas de expiración de cada certificado uno a uno ya que podemos tener decenas de ellos. Para hacer la vida más fácil he creado un script llamado ssl-cert-expiration-checker que recorre una lista de sitios web imprimiendo en nuestra terminal el estado de cada certificado por site en función de la fecha de expiración.

Al script le pasaremos un fichero como argumento. En dicho fichero habrá un site por línea con el formato dominio:puerto. Por ejemplo, tenemos un fichero llamado sitelist con el siguiente contenido:

linux.com:443
kernel.org:443
gnu.org:443
debian.org:443
ubuntu.com:443
github.com:443
google.es:443
microsoft.com:443
redhat.com:443
superuser.com:443
youtube.com:443
stackoverflow.com:443
stackexchange.com:443
wikipedia.org:443
python.org:443
codecademy.com:443
twitter.com:443
packtpub.com:443
reddit.com:443
mysql.com:443

Lanzamos el script pasándole el fichero como argumento:

./ssl-cert-expiration-checker.sh sitelist

Produciendo la siguiente salida en terminal:

El estado de cada certificado depende de los días de caducidad que le queden. En el ejemplo he modificado las fechas para que se muestren distintos resultados (warning, alert…) y que podáis ver visualmente cómo queda. No obstante los valores por defecto son 30 días para un warning y 15 para un alert. Se recomienda utilizar un tema de colores oscuro en la terminal para poder ver bien el resultado.

He subido el script a mi repositorio SSL Certs Management en GitHub. Como siempre podéis modificarlo a vuestro gusto 😉