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…