Skip to content

Add CA trust anchors for bundle compatibility - #414

Merged
mitch292 merged 1 commit into
cloudflare:masterfrom
aberglund-cf:update/aaa-intermediate-trust-anchors
Oct 21, 2026
Merged

mitch292 merged 1 commit into
cloudflare:masterfrom
aberglund-cf:update/aaa-intermediate-trust-anchors

Conversation

@aberglund-cf

@aberglund-cf aberglund-cf commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Explicitly trust 17 selected AAA-issued server-authentication CA certificates as non-self-signed anchors in ca-bundle.crt.
  • Preserve selected certificate paths without restoring trust in AAA Certificate Services or emSign ECC Root CA - G3.
  • Add unpublished database snapshot 2026.10.2, preserving all existing snapshots, including published 2026.10.1.
  • Regenerate root bundle artifacts and add exact-certificate regression coverage.
  • Leave the intermediate bundle unchanged.

Trust policy and consumer behavior

These certificates are explicitly trusted anchors, not merely additional chain-building intermediates. Consumers must support terminating verification at non-self-signed anchors; OpenSSL requires -partial_chain. Loading the certificates only as untrusted intermediates is insufficient.

The 17 certificates represent 16 distinct keys: two COMODO certificates share a key but retain distinct certificate identities. Nine certificates already exist in the database as intermediates; eight certificate records are new. None of the selected keys matches the eight compromised keys in the impacted-intermediate certificate list checked during validation.

Validation

  • go test ./... -count=1
  • go vet ./...
  • git diff --check
  • Reproduced regression failure for all 17 missing anchors before import; confirmed direct anchor termination without AAA afterward.
  • Derived certificate fingerprints and database identities mechanically from the supplied PEMs; verified issuer signatures, CA constraints, key usage, and server-authentication EKU.
  • Verified exactly 17 root additions, with every existing root retaining its DER bytes and relative ordering. Result: 355 anchors; 1,234 intermediate certificates, unchanged byte-for-byte.
  • Verified existing database rows, schema, distrust records, and historical memberships remain unchanged. Only the two new snapshot records, their memberships, and eight new certificate records are added.
  • Verified SQLite integrity, exact regeneration of published 2026.10.1 and proposed 2026.10.2 bundles, and unchanged membership inheritance on a subsequent release roll using a disposable database.
  • Compared ordered DER bytes for all 216 historical root and 216 historical intermediate snapshots. Regeneration matched for all 216 root and 186 intermediate snapshots. The remaining 30 intermediate snapshots from 2017–2019 produce the same pre-existing x509: invalid certificate policies error before and after this change; historical parsing behavior is not modified.

@aberglund-cf
aberglund-cf force-pushed the update/aaa-intermediate-trust-anchors branch from 8dc777e to 9534c05 Compare October 20, 2026 23:13
Explicitly trust 17 selected server-authentication CA certificates to
preserve compatible certificate paths. Keep distrusted roots excluded
and preserve historical database snapshots.

Regenerate root bundle artifacts and cover non-self-signed anchors
with regression tests.
@aberglund-cf
aberglund-cf force-pushed the update/aaa-intermediate-trust-anchors branch from 9534c05 to 70f357b Compare October 20, 2026 23:16

@mitch292 mitch292 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@mitch292
mitch292 marked this pull request as ready for review October 21, 2026 13:58
@mitch292
mitch292 merged commit ea5f34c into cloudflare:master Oct 21, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants