Si je comprends bien… cette commande teste si /usr/bin/certbot est exécutable ET teste la NON présence du dossier /run/systemd/system pour exécuter le renouvellement.
S’il y a systemd alors certbot a aussi configuré un timer.
systemctl list-timers -all
NEXT LEFT LAST PASSED UNIT ACTIVATES
Fri 2020-06-19 17:39:00 CEST 11min left Fri 2020-06-19 17:09:01 CEST 18min ago phpsessionclean.timer phpsessionclean.service
Sat 2020-06-20 03:50:16 CEST 10h left Fri 2020-06-19 06:08:57 CEST 11h ago apt-daily.timer apt-daily.service
Sat 2020-06-20 04:22:56 CEST 10h left n/a n/a certbot.timer certbot.service
Sat 2020-06-20 06:34:07 CEST 13h left Fri 2020-06-19 06:02:47 CEST 11h ago apt-daily-upgrade.timer apt-daily-upgrade.service
n/a n/a n/a n/a systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
5 timers listed.
Pourquoi y a-t-il n/a ?
Que faire pour corriger la situation ?
Merci d’avance
Cela signifie que certbot.service n’a jamais été exécuté ou échoue (voir les logs dans /var/log/letsencrypt/letsencrypt.log ou avec journalctl)
Il faut d’abord vérifier que le renouvellemnt manuel fonctionne :
root@debian:~# cat /var/log/letsencrypt/letsencrypt.log
(rien)
root@debian:~# systemctl status certbot.timer
● certbot.timer - Run certbot twice daily
Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled)
Active: active (waiting) since Tue 2020-03-17 23:02:39 CET; 3 months 4 days ago
juin 21 16:28:49 debian systemd[1]: certbot.timer: Adding 18min 37.445662s random time.
juin 21 16:28:54 debian systemd[1]: certbot.timer: Adding 11h 42min 48.083314s random time.
juin 21 16:28:59 debian systemd[1]: certbot.timer: Adding 1h 19min 39.916220s random time.
juin 21 16:29:04 debian systemd[1]: certbot.timer: Adding 4h 59min 3.871084s random time.
juin 21 16:29:09 debian systemd[1]: certbot.timer: Adding 1h 7min 59.207615s random time.
juin 21 16:29:14 debian systemd[1]: certbot.timer: Adding 9h 18min 2.616682s random time.
juin 21 16:29:19 debian systemd[1]: certbot.timer: Adding 10h 25min 2.891183s random time.
juin 21 16:29:24 debian systemd[1]: certbot.timer: Adding 6h 42min 26.420992s random time.
juin 21 16:29:29 debian systemd[1]: certbot.timer: Adding 4h 2min 53.782794s random time.
juin 21 16:29:34 debian systemd[1]: certbot.timer: Adding 8h 18min 14.589240s random time.
root@debian:~# ls -l /etc/systemd/system/timers.target.wants/
total 0
lrwxrwxrwx 1 root root 35 janv. 15 2019 apt-daily.timer -> /lib/systemd/system/apt-daily.timer
lrwxrwxrwx 1 root root 43 janv. 15 2019 apt-daily-upgrade.timer -> /lib/systemd/system/apt-daily-upgrade.timer
lrwxrwxrwx 1 root root 33 mars 17 23:02 certbot.timer -> /lib/systemd/system/certbot.timer
lrwxrwxrwx 1 root root 41 janv. 16 2019 phpsessionclean.timer -> /lib/systemd/system/phpsessionclean.timer
root@debian:~# cat /lib/systemd/system/certbot.timer
[Unit]
Description=Run certbot twice daily
[Timer]
OnCalendar=*-*-* 00,12:00:00
RandomizedDelaySec=43200
Persistent=true
[Install]
WantedBy=timers.target
root@debian:~# cat /lib/systemd/system/certbot.service
[Unit]
Description=Certbot
Documentation=file:///usr/share/doc/python-certbot-doc/html/index.html
Documentation=https://letsencrypt.readthedocs.io/en/latest/
[Service]
Type=oneshot
ExecStart=/usr/bin/certbot -q renew
PrivateTmp=true
si je lance certbot --dry-run renew (et que ça renouvèle correctement le certificat) je devrais attendre 3 mois pour vérifier le fonctionnement du crontab ???
Tout semble correct pour les commandes effectuées. Le problème ne provient donc probablement pas de cron ou systemd mais de la configuration des sites et des certificats.
Pour
cette commande va seulement simuler le renouvellement (dry-run) pour voir s’il fonctionne.
Et bien pour mois tout est ok.
Je ne vois donc pas d’où vient le problème
On va quand même regarder le résultat de :
journalctl -u certbot --no-pager
mais cela ne devrait rien donner au vu des retours précédents.
Le seul truc qui me chagrine c’est le délai aléatoire qui me semble être ajouté un peu trop souvent.
root@debian:~# systemctl status certbot.service
● certbot.service - Certbot
Loaded: loaded (/lib/systemd/system/certbot.service; static; vendor preset: enabled)
Active: inactive (dead)
Docs: file:///usr/share/doc/python-certbot-doc/html/index.html
https://letsencrypt.readthedocs.io/en/latest/
root@debian:~# systemctl start certbot.service
root@debian:~# systemctl status certbot.service
● certbot.service - Certbot
Loaded: loaded (/lib/systemd/system/certbot.service; static; vendor preset: enabled)
Active: inactive (dead) since Sun 2020-06-21 21:30:45 CEST; 9s ago
Docs: file:///usr/share/doc/python-certbot-doc/html/index.html
https://letsencrypt.readthedocs.io/en/latest/
Process: 50472 ExecStart=/usr/bin/certbot -q renew (code=exited, status=0/SUCCESS)
Main PID: 50472 (code=exited, status=0/SUCCESS)
juin 21 21:30:34 debian systemd[1]: Starting Certbot...
juin 21 21:30:45 debian systemd[1]: Started Certbot.
Et miracle ! le certificat du site a été renouvelé !
Une idée du pourquoi le service n’était pas démarré ???
J’ai remarqué également que les certificats étaient visibles dans /var/log/letsencrypt/letsencrypt.log => pas grave ???
Aucune idée, sauf erreur de ma part le service (certbot.service) aurait dû être lancé par le timer (certbot.timer).
Il va maintenant falloir surveiller si la tâche de renouvellement se lance bien deux fois par jour.
Non ce n’est pas normal, tu dois avoir une autre tâche cron quelque part qui se lance toutes les minutes.
Je viens de remarquer aussi ceci dans ton retour de systemctl list-timers :