Conversation
Allow authorized callers to revoke an X.509 certificate without manufacturing an OTT or mTLS authorization context. Reuse the existing CAS, persistence, linked CA, and CRL paths so administrative revocation behaves like other X.509 revocations.
tedmalone
force-pushed
the
ted/admin-certificate-revocation
branch
from
September 3, 2026 23:35
213d8da to
350352d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Name of feature:
Administrative X.509 certificate revocation.
Pain or issue this feature alleviates:
Administrative integrations may authorize a revocation before calling into the certificate authority. The existing revocation path expects an OTT or requester certificate so that it can recover authorization metadata, leaving these callers without a direct X.509 revocation entry point.
Why is this important to the project (if not answered above):
This adds an explicit entry point for already-authorized revocations while reusing the existing CAS, persistence, linked CA, and CRL behavior. It avoids duplicating revocation logic or constructing artificial OTT or mTLS state.
Is there documentation on how to use this feature? If so, where?
The exported type and method include Go documentation describing the authorization requirement. This change does not add a command, configuration option, or HTTP endpoint.
In what environments or workflows is this feature supported?
X.509 revocation workflows where the caller has already authorized the action and can provide the certificate being revoked. The operation supports the configured CAS, local or linked CA persistence, passive revocation, and generate-on-revoke CRLs.
In what environments or workflows is this feature explicitly NOT supported (if any)?
This method does not perform authentication or authorization. It is not a public HTTP endpoint, does not revoke SSH certificates, and does not support serial-only administrative revocation.
Testing:
V=1 make testwith Go 1.25.14 and Go 1.26.7 on LinuxV=1 make buildwith both Go versionsgo vet ./...govulncheck ./...