> I'm using the acme.sh client but the process will be similar no matter which client you choose to use.

Always nice to see some variety in clients along side the official Let's Encrypt one.

While we do use the official Python-based client at works at times, whenever I install it via apt, and it pulls in a whole bunch of dependencies, it's a bit disconcerting to me.

I'm a bit partial to dehydrated, which is a shell script (works under Bash and Zsh): I find it a lot easier to understand. It's handy to put on Linux/POSIX-based appliances like F5s, where the only prerequisites are Bash, cURL, and OpenSSL (and standard Unix tools like sed, grep, etc):

* https://devcentral.f5.com/s/articles/lets-encrypt-on-a-big-i...

* https://github.com/EquateTechnologies/dehydrated-bigip-ansib...

+1 for dehydrated [1]. Aside from being able to run basically anywhere, it is very easy to script: Create a file with the list of domains you want, and run `dehydrated --cron`. dehydrated will obtain certs and/or modify existing and/or renew, or just do nothing.

Certbot is designed for interactive use: obtaining, changing and renewing certificates are all distinct commands, and if you tell it to obtain a cert you already have, it'll just obtain it anyway. Handling this from a script is a huge pain.

[1] https://github.com/dehydrated-io/dehydrated