Skip to content

Handle missing CRL distribution points in revocation check fallback#176

Open
BernhardK91 wants to merge 1 commit into
holodeck-b2b:masterfrom
BernhardK91:fix-crl-revocation-fallback
Open

Handle missing CRL distribution points in revocation check fallback#176
BernhardK91 wants to merge 1 commit into
holodeck-b2b:masterfrom
BernhardK91:fix-crl-revocation-fallback

Conversation

@BernhardK91

Copy link
Copy Markdown

When BouncyCastle PKIX validates a certificate chain with revocation checking enabled, it fails with UNSPECIFIED reason and "No CRLs found for issuer" if the issuing CA does not provide CRL distribution points. This is common for intermediates signed by root CAs (e.g. Google Trust Services WE1 signed by GTS Root R4).

The existing fallback only retried without revocation for UNDETERMINED_REVOCATION_STATUS or UNSPECIFIED with an IOException cause. The "No CRLs found" error uses a RecoverableCertPathValidatorException (not IOException), so the fallback was not triggered.

This adds a message-based check for "No CRLs found" to also retry without revocation checking in this case.

When BouncyCastle PKIX validates a certificate chain with revocation
checking enabled, it fails with UNSPECIFIED reason and "No CRLs found
for issuer" if the issuing CA does not provide CRL distribution points.
This is common for intermediates signed by root CAs (e.g. Google Trust
Services WE1 signed by GTS Root R4).

The existing fallback only retried without revocation for
UNDETERMINED_REVOCATION_STATUS or UNSPECIFIED with an IOException
cause. The "No CRLs found" error uses a
RecoverableCertPathValidatorException (not IOException), so the
fallback was not triggered.

Add a message-based check for "No CRLs found" to also retry without
revocation checking in this case.
@sfieten

sfieten commented Apr 14, 2026

Copy link
Copy Markdown
Collaborator

Hi @BernhardK91,
the problem isn't that there is no CRL dp included in the certificate, but rather that the CRL is not available for checking as automatic downloading of CRLs is disabled by default.
Because of other issues in the certificate path building it has been refactored and the automatic downloading has been enabled. This should also fix this issue. Please test the version available in the next branch to confirm.

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