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

add acme-preferred-chain config key #864

Merged
merged 1 commit into from
Nov 2, 2021
Merged

Conversation

jcmoraisjr
Copy link
Owner

Since the deprecation of DST X3 root CA, which used to sign Let's Encrypt root CA, a few issues raised and can be summarized as:

  • If the topmost certificate of the provided chain is issued by DST X3, clients that has DST X3 on their trusted CAs bundle, care about the expiration of their CAs, and a somewhat old openssl, will fail to trust in the Let's Encrypt chain even if they trust in the Let's Encrypt's ISRG Root X1. Clients should update openssl or remove DST X3 from their trusted CAs. This is the default chain provided by Let's Encrypt;
  • If the topmost certificate is issed by ISRG Root X1, which is Let's Encrypt's root CA, old clients will fail to trust Let's Encrypt certificate, mostly Android older than 7.1.1.

Let's Encrypt production API adds alternative chains that can be chosen by the Common Name of its topmost certificate. This is the purpose of this configuration key, so sys admins can choose the chain that will have the lesser impact on their users.

Acme client was updated in a way that a mistyped preferred chain doesn't fail the emission of the certificate, which avoids to being blocked by the acme server due to the amount of new orders.

As a first implementation that's being planned to be merged to v0.13, it wasn't added the ability to identify that a preferred chain was changed. Such change would need to change even more code, making this even less secure to be merged to a stable version.

Should be merged to v0.13 so users can benefit from this alternative as soon as possible.

Since the deprecation of DST X3 root CA, which used to sign Let's
Encrypt root CA, a few issues raised and can be summarized as:

* If the topmost certificate of the provided chain is issued by
  `DST X3`, clients that has `DST X3` on their trusted CAs bundle, care
  about the expiration of their CAs, and a somewhat old openssl, will
  fail to trust in the Let's Encrypt chain even if they trust in the
  Let's Encrypt's `ISRG Root X1`. Clients should update openssl or
  remove `DST X3` from their trusted CAs. This is the default chain
  provided by Let's Encrypt;
* If the topmost certificate is issed by `ISRG Root X1`, which is Let's
  Encrypt's root CA, old clients will fail to trust Let's Encrypt
  certificate, mostly Android older than 7.1.1.

Let's Encrypt production API adds alternative chains that can be chosen
by the Common Name of its topmost certificate. This is the purpose of
this configuration key, so sys admins can choose the chain that will
have the lesser impact on their users.

Acme client was updated in a way that a mistyped preferred chain doesn't
fail the emission of the certificate, which avoids to being blocked by
the acme server due to the amount of new orders.

As a first implementation that's being planned to be merged to v0.13,
it wasn't added the ability to identify that a preferred chain was
changed. Such change would need to change even more code, making this
even less secure to be merged to a stable version.

Should be merged to v0.13 so users can benefit from this alternative as
soon as possible.
@jcmoraisjr
Copy link
Owner Author

#859

@jcmoraisjr jcmoraisjr merged commit ba4843e into master Nov 2, 2021
@jcmoraisjr jcmoraisjr deleted the jm-acme-pref-chain branch November 2, 2021 18:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant