Don't include root certificates returned by Sectigo in CA bundle #69
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
EDGE-2152 We began including the root certificate in the Sectigo chain on Feb 9, 2023, and this caused trouble for a customer's reverse proxy config (EDGES-11).
Because we didn't previously include the root, I'm comfortable reverting to this configuration. In general, the server sending the root is optional, and clients are supposed to have roots in their trust store prior to connecting to the server (and specifically should not trust any root provided by the server itself.)
One of our customer's issue comes from the fact that when their MITM proxy re-signs certificates, it does so at the signature strength of the weakest signature algorithm in the chain. Even though our Sectigo cert chains up to a cert with a stronger sig alg than SHA1, the presence of the
AAA Certificate Services
root sent by the server takes precedence. This behavior is admittedly a weird edge case, but the combination of not including the root being:makes me want to make this change.
Tests updated to verify this:
Footnotes
https://security.stackexchange.com/a/260380 ↩
https://www.rfc-editor.org/rfc/rfc5246
the self-signed certificate that specifies the root certificate authority MAY be omitted from the chain, under the assumption that the remote end must already possess it in order to validate it in any case.
↩