Cron job for let's encrypt renewal

user3448600 asked:

Is this correct way to set cron for renewal of Let’s Encrypt cert in Apache2 ?
I use Ubuntu 16.04.

@monthly letsencrypt renew && service apache2 reload

My answer:

Monthly is not frequent enough. This script should run at least weekly, and preferably daily. Remember that certs don’t get renewed unless they are near to expiration, and monthly would cause your existing certs to occasionally be expired already before they get renewed.

The name of the program is certbot, which was renamed from letsencrypt. If you are still using letsencrypt, you need to update to the current version.

Aside from those issues, it’s about the same as my cron jobs.

43 6 * * * certbot renew --post-hook "systemctl reload nginx"

Note that in 18.04 LTS the letsencrypt package has been (finally) renamed to certbot. It now includes a systemd timer which you can enable to schedule certbot renewals, with systemctl enable certbot.timer and systemctl start certbot.timer. However, Ubuntu did not provide a way to specify hooks. You’ll need to set up an override for certbot.service to override ExecStart= with your desired command line, until Ubuntu fixes this.

View the full question and answer on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.