Execution de script lors du renouvellement des certificats let's encrypt

J’ai rencontré un soucis lors du renouvellement des certificats TLS pour mon serveur jabber prosody. Il n’était visiblement pas renouvellé du point de vue des client, bien que les certificat le soit physiquement sur la machine.

Classiquement, l’application charge au démarrage les certificats en mémoire et à donc besoin d’être redémarrer pour prendre en charge les nouveaux certificats.

J’ai trouvé la solution a mon bonheur dans la documentation de prosody.

Dans ma crontab, j’avais :

usr/bin/certbot renew --deploy-hook "prosodyctl --root cert import /etc/letsencrypt/live"

Simplement, on place une option de type --deploy-hook, --post-hook ou --pre-hook à la suite de la commande cerbot renew avec la commande que l’on souhaite exécuter.

On peut également déposer un exécutable dans le répertoire ad-hoc sous : /etc/letsencrypt/renewal-hooks/.

root@grrrrr:~# tree /etc/letsencrypt/renewal-hooks/
/etc/letsencrypt/renewal-hooks/
├── deploy
│   └── prosody.sh
├── post
│   └── 01-mail.sh
└── pre

3 directories, 2 files

Les exécutables sont exécuté suivant l’ordre alphabetique (utilise la valeur des byte par l’ordre alphabetique en fonction de la langue du système) des fichiers.

Comme on peut le voir au niveau de l’arborescence, on a également un fichier 01-mail qui redémarre postfix et dovecot.