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 GitHub. Como siempre podéis modificarlo a vuestro gusto 😉
NOTA: el script ha sido renombrado de ssl-cert-expiration-checker.sh a jota-cert-checker.sh