Skip to content

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