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 :
- Monitorer la date d’expiration d’un certificat SSL avec Munin
- 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 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
- Prefetch Technologies , Proactively Handling Certificate Expiration With ssl-cert-check