====== Let's Encrypt Certbot ======
The following walk through works on Debian 9, 10, and 11.
===== Installation =====
- Install snapdsudo apt update
sudo apt install snapd
sudo snap install core
sudo snap refresh core
- Remove previously installed certbot packagessudo apt remove --purge certbot
sudo rm /usr/local/bin/certbot-auto
- Remove certbot renewal entry in crontab
- Install certbot through snapsudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
- Test automatic renewalsudo certbot renew --dry-run
- Check that the certbot renewal service has been set upsystemctl list-timers
===== Maintenance =====
* If you have existing SSL VirtualHost definitions you need to copy a certificate from another site or webserver to /etc/letsencrypt/live and point the certificate in the virtual host file to that certificate before starting/restarting apache. This is necessary for certbot to run, and certbot will later replace the certificate with a valid one.
* Run certbot and register sites:certbot
* Check certificates:certbot certificates
* Add domains to certificate:certbot --expand -d example.com,www.example.com,click.example.com
certbot certonly --webroot --agree-tos -w /srv/www/letsencrypt/ --expand -d example.com,www.example.com,click.example.com
* Revoke and optionally delete certificate:certbot revoke --cert-path /etc/letsencrypt/live/example.com/cert.pem
* Delete certificate:certbot delete --cert-name www.example.com
* Delete listed domains:certbot delete
* Remove and/or add domains from existing certificate:certbot certonly --force-renew --cert-name mycertificate.com -d remove.mycertificate.com -d add.mycertificate.com
* Remove domain from certificate:
- Delete certificate where domain is listed in
- Change all apache conf files for the remaining domains in the deleted certificate to another certificate which is active
- Recreate the certificate for the remaining domainscertbot -d example.com -d example.net
* All sites must be accessible through port 80 when renewing certificates.
===== Disable =====
* Comment the 2 //OnCalendar// lines in file ''/etc/systemd/system/snap.certbot.renew.timer'' which removes the times set when certbot is called$ sudo vim /etc/systemd/system/snap.certbot.renew.timer
[Timer]
Unit=snap.certbot.renew.service
# OnCalendar=*-*-* 08:46
# OnCalendar=*-*-* 15:37
===== OUTDATED: Crontab =====
* Root$ sudo crontab -e
35 3 * * 6 certbot renew && /etc/init.d/apache2 restart
==== Links ====
* [[https://certbot.eff.org/instructions?ws=apache&os=debianbuster|certbot instructions: Apache on Debian 10]]
* [[https://eff-certbot.readthedocs.io/en/stable/uninstall.html|Uninstalling certbot-auto]]
* [[https://github.com/certbot/certbot/issues/8555|How do I disable auto-renew without removing config files?]]
* [[https://docs.digitalocean.com/products/networking/load-balancers/#lets-encrypt-ssl-certificates|Load Balancers]]