Script monitoring certificats SSL / HTTPS

J’ai configuré mon seveur apache pour qu’il fonctionne en HTTPS avec un certificats Let’s Encrypt. Voir par exemple ici comment faire : Configurer Apache pour utiliser https/ssl et les certificats clients

Le certificat Let’s Encrypt a une validité de 3 mois maxi il faut donc le renouveler périodiquement.

J’ai crée un script pour ce faire mais ce n’est pas l’objet de ce post. Pour être alerté lorsque le certificat va bientôt expiré (par exemple car vous avez oublié de le renouvelé ou que votre script de renouvellent automatique n’as pas fonctionné) j’ai créé un simple script qui va m’alerter lorsque la validité de certificats sera inférieure à x jours. Je peux être alerté par mail ou par SMS…

Installation

wget https://raw.githubusercontent.com/Sirus10/scripting/master/monitor_ssl_cert.sh
chmod +x monitor_ssl_cert.sh

Si vous ne l’avez pas déjà fait il vous faudra installer le shell ksh :

sudo apt-get update
sudo apt-get install ksh

Configuration

J’utilise l’API de Free pour recevoir une alerte par SMS mais aussi par mail. Vous pouvez ajuster vous même le script :

Pour recevoir un SMS comme alerte vous pouvez de-commentez cette ligne (nécessite un compte free mobile avec l’API SMS activé)

 #curl -k -f "$SMS_FREE_API$ALERT_MESS" 

Ajoutez votre adresse email a la ligne suivante :

echo $ALERT_MESS | mail -s "SSL Cert expiration " <put your email adress here>  

Ajuster le seul d’alerte (en jour) modifier simplement ici 45 par le nombre de jour souhaité:

if [ $dayvalid -lt 45 ]

Et bien sur l’url et éventuellement le port à monitorer, dans mon cas c’est l’url https://domoticz:433

server=domoticz  	# URL to monitor
port=443		# PORT SSL (default 443) 

Vous trouverez le script ici complet et à jour ici : https://github.com/Sirus10/scripting/blob/master/monitor_ssl_cert.sh

Exécution et planification du script :

Simplement :

./monitor_ssl_cert.sh

Vous pouvez le planifier par exemple en crontab comme ceci :

# mmonitor SSL cert at 4h04 every days
4 4  * * *  /root/scripts/monitor_ssl_cert.sh >> /tmp/monitor_s                                                                    sl_cert.log
./monitor_ssl_cert.sh

Voila en espérant que ça puisse servir à d’autres également…

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

 

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.