Monitorer la date d’expiration d’un certificat SSL

12 mars 2016 Monitoring 1 Commentaire

Le certificat SSL utilisé sur le blog est généré par Let’s Encrypt. Ces certificats expirent assez rapidement, après 90 jours, et si l’on oublie de les renouveler les utilisateurs du site se retrouvent avec une erreur indiquant que le certificat n’est plus valable. C’est pourquoi j’ai récemment publié un article expliquant comment installer configurer et renouveler automatiquement un certificat SSL Let’s Encrypt. Seulement voilà, on est jamais à l’abris d’une erreur et je souhaitais pouvoir monitorer facilement la date d’expiration d’un certificat.

 

Je vous propose ici deux méthodes :

  1. Monitorer la date d’expiration d’un certificat SSL avec Munin
  2. Monitorer la date d’expiration d’un certificat SSL avec ssl-cert-check

 

 

Monitorer la date d’expiration d’un certificat SSL avec Munin

Commencez par vous rendre dans le répertoire où sont stockés tous les plugins installables Munin

cd /usr/share/munin/plugins/

 

Téléchargez le pack de plugins développés par synapticloop

sudo git clone https://github.com/synapticloop/munin-plugins.git

 

Maintenant allons dans le répertoire contenant le plugin ssl-expiry

cd munin-plugins/ssl-expiry/

 

Rendons le script exécutable

chmod +x ssl-expiry_

 

Créez un lien symbolique vers ce fichier (en ajoutant le nom du domaine à monitorer dans le nom du fichier) dans le répertoire contenant les plugins installés sur ce serveur

cd /etc/munin/plugins/
ln -s /usr/share/munin/plugins/munin-plugins/ssl-expiry/ssl-expiry_ ssl-expiry_www.votre-domaine.tld

 

Redémarrez le service munin-node

sudo service munin-node restart

 

Attendez quelques minutes et vous devriez voir apparaître une nouvelle page de monitoring dénommée SSL

Monitorer la date d'expiration d'un certificat SSL

 

 

Monitorer la date d’expiration d’un certificat SSL avec ssl-cert-check

Vous pouvez aussi si vous le souhaitez choisir d’utiliser ssl-cert-check à la place ou en complément du plugin Munin. Ce programme vous permet de monitorer la date d’expiration d’un certificat SSL depuis un shell.

Commencez par installer le paquet

sudo apt-get install ssl-cert-check

 

Monitorer un certificat SSL installé sur votre serveur

Dans ce premier exemple nous allons vérifier la date d’expiration d’un certificat installé sur notre serveur

root@noobunbox:~# ssl-cert-check -c /etc/letsencrypt/live/noobunbox.net/fullchain.pem

Host Status Expires Days
----------------------------------------------- ------------ ------------ ----
FILE:/etc/letsencrypt/live/noobunbox.net/fullchain.pem Valid Jun 8 2016 87

 

Monitorer un certificat SSL en ligne

Nous allons maintenant vérifier la date d’expiration d’un certificat configuré sur un domaine

root@noobunbox:~# ssl-cert-check -s noobunbox.net -p 443

Host Status Expires Days
----------------------------------------------- ------------ ------------ ----
noobunbox.net:443 Valid Jun 8 2016 87

 

Monitorer plusieurs domaines

Nous allons maintenant vérifier la date d’expiration de certificats installés sur plusieurs domaines

Créons un fichier nommé ssl-domains

nano ssl-domains

 

Listons les certificats que nous souhaitons monitorer

noobunbox.net 443
shaarli.noobunbox.net 443
google.com 443

 

Passons à la vérification

root@noobunbox:~# ssl-cert-check -f ssl-domains

Host Status Expires Days
----------------------------------------------- ------------ ------------ ----
noobunbox.net:443 Valid Jun 8 2016 87 
shaarli.noobunbox.net:443 Valid Jun 8 2016 87 
google.com:443 Valid May 31 2016 79

 

Si vous souhaitez avoir plus d’informations sur le certificat vous pouvez rajouter l’option -i

root@noobunbox:~# ssl-cert-check -i -f ssl-domains

Host Issuer Status Expires Days
----------------------------------- ----------------- -------- ----------- ----
noobunbox.net:443 Let's Encrypt Valid Jun 8 2016 87 
shaarli.noobunbox.net:443 Let's Encrypt Valid Jun 8 2016 87 
google.com:443 Google Inc Valid May 31 2016 79

 

Envoyer une notification par email avant l’expiration d’un certificat

ssl-cert-check peut être utilisé afin d’envoyer des alertes concernant la proche expiration d’un certificat SSL. Dans notre exemple nous souhaitons envoyer une alerte (-a) par email (-e) si l’un des certificats listés dans le fichier ssl -domains (-f ssl-domains) expire dans 60 jours (-x 60)

ssl-cert-check -a -f ssl-domains -q -x 60 -e votre-email

 

Il ne vous reste plus qu’a lancer ces vérifications automatiquement via un cron

 

Source