crl-updater: split temporal/explicit sharding by serial #7990
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.
When we turn on explicit sharding, we'll change the CA serial prefix, so we can know that all issuance from the new prefixes uses explicit sharding, and all issuance from the old prefixes uses temporal sharding. This lets us avoid putting a revoked cert in two different CRL shards (the temporal one and the explicit one).
To achieve this, the crl-updater gets a list of temporally sharded serial prefixes. When it queries the
certificateStatus
table by date (GetRevokedCerts
), it will filter out explicitly sharded certificates: those that don't have their prefix on the list.Part of #7094
Warning
The integration test case
TestRevocation
currently fails because the6e
-prefixed certificates don't show up on any CRL. That will be addressed in #7985 and tests will pass. However, it's okay to review this PR as it stands.