Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace simp_le with acme.sh #719

Merged
merged 55 commits into from
Nov 30, 2020
Merged

Replace simp_le with acme.sh #719

merged 55 commits into from
Nov 30, 2020

Conversation

buchdag
Copy link
Member

@buchdag buchdag commented Nov 30, 2020

This PR replaces the ACME client used inside the container (simp_le) by acme.sh.

This is a pretty significant change and will mark the second major version of this project (v2.0.0 release).

Changes and design choices where discussed in #510

The most important, not backward compatible change is that acme.sh relies on configuration files to work (unlike simp_le). This means that a Docker volume now has to be mounted to /etc/acme.sh in order to persist acme.sh configuration.

acme.sh also handle the ACME accounts differently than simp_le and the following choices were made with @pini-gh:

  • Use one acme.sh configuration directory (--config-home) per account email address.

  • Each acme.sh configuration directory can hold several accounts on different ACME service providers. But only one per service provider.

  • The default configuration directory holds the configuration for empty account email address.

  • When in Let's Encrypt staging mode (LETSENCRYPT_TEST=true):

    1. The container will use the special purpose staging configuration directory.
    2. The directory URI is forced to The Let's Encrypt v2 staging one (ACME_CA_URI is ignored)
    3. The account email address is forced empty (DEFAULT_EMAIL and LETSENCRYPT_EMAIL are ignored)

This PR also update the base Alpine image to 3.12, enable ECDSA private keys (close #376), fix #638 and support the --preferred-chain option of acme.sh (close #695). The tests were reworked to rely as little as possible on pre-generated expected output, which should make writing new tests a bit easier.

Finally, this PR makes letsencrypt-nginx-proxy-companion compatible with Zero SSL using EAB, a Zero SSL developer API key or a simple email address.

Thank to @pini-gh for his contributions to this PR and to @henriquebastos for the intermediary image size reduction I borrowed from his fork.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature-request Issue requesting a new feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support --preferred-chain certbot option Missing email Add support ECDSA certificate generation
3 participants