Certbot / apache

Bonjour,

A cause des soucis récurrents avec des certificats auto-signé, je me suis décidé pour passer à letsencrypt.

apt install certbot python3-certbot-dns-ovh

certbot certonly --dns-ovh --dns-ovh-credentials /etc/certbot/ovh.ini --non-interactive --agree-tos --email no-reply@home.xyz  -d my.home.xyz 

/etc/apache2/sites-available/my.home.xyz.conf

A l’heure actuelle, j’ai bien mon certificat et c’est configuré coté apache

Je me pose maintenant la question sur le renouvellement des certificats
J’ai vu pas mal de choses mais je m’interroge sur le timer installé par le paquet

cat /etc/systemd/system/timers.target.wants/certbot.timer 
[Unit]
Description=Run certbot twice daily

[Timer]
OnCalendar=*-*-* 00,12:00:00
RandomizedDelaySec=43200
Persistent=true

[Install]
WantedBy=timers.target

/lib/systemd/system/certbot.service

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

Coté apache, est-ce que j’ai besoin de faire quelque chose ?
De ce que j’ai vu un reload d’apache semble nécessaire ?

si le certificat est renouvelé automatiquement par certbot, il faut en effet que apache soit redémarré car sinon il ne prendra pas en compte le nouveau certificat.
Un renouvellement de certificat c’est le remplacement de l’ancien certificat par un nouveau, mais avec la même autorité de certification mais aussi avec une nouvelle clef.

Oui un simple reload suffit

S’il n’est pas déjà présent un script exécutable /etc/letsencrypt/renewal-hook/deploy/reload_services :

#!/bin/sh
/bin/systemctl reload apache2 2>/dev/null

permet de faire cela automtiquement lorsque les certificats ont été renouvelés avec succès. Voir la doc : https://certbot.eff.org/docs/using.html#renewing-certificates
Tu peux bien sûr ajouter d’autres lignes pour d’autres services : postfix, dovecot, etc.

N.B. : dans la plupart des cas ce n’est pas nécessaire car les certificats sont renouvelés avant expiration et qu’un service comme Apache est rechargé à chaque rotation des logs(par défaut tous les jours).

@anon70622873

petite coquille dans le chemin : /etc/letsencrypt/renewal-hooks/deploy

par sécurité j’ai crée le scritp dans renewal-hooks.

j’ai lancé :
certbot renew --dry-run
mais pas de traces du hook ?

en espérant que dans quelques semaines tous se passe bien
merci à tous pour vos réponses

Bine vu :wink: Je fais souvent des fautes de frappe. J’ai corrigé
Attention le script doit être exécutable et dans /etc/letsencrypt/renewal-hook/deploy/. Et je t’invite vraiment à lire la doc que j’ai donnée en lien : les scripts placés dans ce dossier ne sont exécutés que lors d’une renouvellement effectif et réussi du(des) certificat(s). Donc évidemment pas avec un « --dry-run ».

j’avais évidemment oublié le chmod :upside_down_face:
ok pour le résultat du --dry-run
pour la doc, je t’avoue que j’ai pas eu le temps mais j’ai mis le lien dans ma doc.