Simple Let’s Encrypt client.
simp_le --email [email protected] -f account_key.json \
-f fullchain.pem -f key.pem \
-d example.com -d www.example.com --default_root /var/www/html \
-d example.net:/var/www/other_html
For more info see simp_le --help
.
N.B. this was originally a fork of https://github.com/kuba/simp_le, which is unmaintained and has some breakage due to bitrot. Thanks to @kuba for the original implementation.
- UNIX philosophy: Do one thing and do it well!
simp_le --valid_min ${seconds?} -f cert.pem
implies thatcert.pem
is valid for at at leastvalid_min
(defaults to 2592000 seconds / 30 days). Register new ACME CA account if necessary. Issue new certificate if no previous key/certificate/chain found. Renew only if necessary.- (Sophisticated) “manager” for
${webroot?}/.well-known/acme-challenge
only. No challenges other thanhttp-01
. Existing web-server must be running already. - No magical webserver auto-configuration.
- Owner of
${webroot?}/.well-known/acme-challenge
must be able to run the script, without privilege escalation (sudo
,root
, etc.). crontab
friendly: fully automatable - no prompts, etc.- No configuration files. CLI flags as the sole interface! Users should write their own wrapper scripts or use shell aliases if necessary.
- Support multiple domains with multiple roots. Always create single
SAN certificate per
simp_le
run. - Flexible storage capabilities. Built-in
simp_le -f fullchain.pem -f key.pem
,simp_le -f chain.pem -f cert.pem -f key.pem
, etc. Extensions throughsimp_le -f external.sh
. - Do not allow specifying output file paths. Users should symlink if necessary!
- No need to allow specifying an arbitrary command when renewal has
happened, just check the exit code:
0
if certificate data was created or updated;1
if renewal not necessary;2
in case of errors.
--server
(support multiple CAs).- Support for revocation.
sudo ./bootstrap.sh
./venv.sh
export PATH=$PWD/venv/bin:$PATH
If you want to use simp_le with Docker, have a look at simp_le for Docker.
Have a look into ./examples/
and
https://github.com/zenhack/simp_le/wiki/Examples.
If you’re having problems you can chat with us on IRC (#simp_le at Freenode)
Below is a summary of changes introduced in each release. Any user-visible changes must be recorded here. Note that the topmost entry sometimes represents the next (i.e. not yet released) version.
- Disable self-verification; this was highly unreliable and resulted in spurrious warnings.
- Improve argument sanity-checks and error messages.
- Save account_key.json, even on failures
- Upgrade acme to 0.19.x
- Add a workaround for some installation problems caused by a bug in pip
- Upgrade acme to 0.17.x
- Upgrade acme to 0.16.x
- Fix a bug where the version number was incorrectly reported
- Upgrade acme to 0.15.x
- Upgrade to acme 0.11.x
- Change the package name; the original maintainer owns the simp_le PyPI package, and hasn't responded to requests to transfer it, so the package name is now 'simp_le-client'.
- First release