LetsEncrypt renewal hooks: I was doing it all wrong! _ _ ___ _ | | ___ | |_ ___ | __| _ _ __ _ _ _ _ _ __ | |_ | |__ / -_) | _| (_-< | _| | ' \ / _| | '_| | || | | '_ \ | _| |____| \___| \__| /__/ |___| |_||_| \__| |_| \_, | | .__/ \__| |__/ |_| _ _ _ ___ _ _ ___ __ __ __ __ _ | | | '_| / -_) | ' \ / -_) \ V V / / _` | | | |_| \___| |_||_| \___| \_/\_/ \__,_| |_| _ _ _ | |_ ___ ___ | |__ ___ (_) | ' \ / _ \ / _ \ | / / (_-< _ |_||_| \___/ \___/ |_\_\ /__/ (_) ___ |_ _| | | |___| __ __ __ __ _ ___ \ V V / / _` | (_-< \_/\_/ \__,_| /__/ _ _ __| | ___ (_) _ _ __ _ / _` | / _ \ | | | ' \ / _` | \__,_| \___/ |_| |_||_| \__, | |___/ _ _ (_) | |_ | | | _| |_| \__| _ _ __ _ | | | | / _` | | | | | \__,_| |_| |_| _ __ __ __ _ _ ___ _ _ __ _ | | \ V V / | '_| / _ \ | ' \ / _` | |_| \_/\_/ |_| \___/ |_||_| \__, | (_) |___/ ╔─*──*──*──*──*──*──*──*──*──*──*──*──*──*──*──*─╗ ║1 ........................................ 1║ ║2* ........................................ *2║ ║3 ........................................ 3║ ║1 ...........Posted: 2025-03-02........... 1║ ║2* .........Tags: sysadmin linux .......... *2║ ║3 ........................................ 3║ ║1 ........................................ 1║ ╚────────────────────────────────────────────────╝ I kept saying `deploy_hook` and `post_hook`, but no it's `renew_hook`, and if there's unrecognized entry it'll just remove it! I have no idea how I made this mistake... It should look like this: ``` [renewalparams] account = redacted authenticator = webroot webroot_path = /var/www/xmpp.someodd.zip, server = https://acme-v02.api.letsencrypt.org/directory key_type = ecdsa renew_hook = prosodyctl --root cert import /etc/letsencrypt/live ``` Use this command now, to test: ``` sudo certbot renew --cert-name irc.xmpp.someodd.zip --force-renewal ``` I have to go through and update all my certs now... What's frustrating is it'll fail silently and just remove the line from the config. Thanks to this thread: https://community.letsencrypt.org/t/certbot-renew-overwriting-renewal-file/119107/2