CRL (Certificate Revocation List)

created onAugust 26, 2026

A CRL (Certificate Revocation List) is a list of digital certificates that have been revoked by the issuing CA (Certificate Authority) before their scheduled expiration date and should no longer be trusted.

CRLs were introduced and standardized by the IETF in RFC 2459 in January 1999.

The issuing CA –or an authorized entity– maintains a CRL (Certificate Revocation List). A CRL holds an entry for every revoked certificate, consisting of:

  • the unique serial numbers of the revoked certificate.
  • the revocation date.
  • the reason code which indicates the reason why the certificate is revoked (like key compromise).

The CA or authorized entity signs the CRL to prevent tampering. Every certificate issued by the respective CA contains a specific URL extension pointing to where corresponding CRL is hosted. Clients and services can check a certificate’s serial number against this list to confirm validity.

CRL Reason Codes

code meaning details
0 unspecified revocation reason is not stated or does not match other specific codes
1 keyCompromise the private key is suspected or known to be compromised
2 cACompromise the issuing CAs private key is suspected or known to be compromised
3 affiliationChanged subject name or other organizational details changed
4 superseded certificate updated – replaced by a new certificated
5 cessationOfOperation the service is retired or the domain ownership changed
6 certificateHold certificate is temporarily revoked (on hold)
8 removeFromCRL value may only appear in delta CRLs. Indicates that a certificate is to be removed from a CRL because either the certificate expired or was removed from hold.
9 privilegeWithdrawn authentication and/or authorization cancelled by the issuing CA
10 aACompromise attribute authority private key is suspected or known to be compromised

Note that value 7 is not used.

performance issues

In the past, CRLs could grow quite large up to multiple megabytes. With nowadays practice of issuing certificates with validity periods down to a month or even less, CRLs have shrunk in size.

privacy

Certificate Revocation Lists (CRLs) are generally considered more privacy-friendly than OCSP, because they do not leak much information to third parties about what servers a client visits. By downloading a CRL, a client only reveals that it is about to connect to server with a certificate from a certain CA, which usually is a massive set of servers.

However, because CRL files are published over HTTP rather than HTTPS, it allows network observers to see when a client downloads a CRL and can link the clients IP address to that specific CA’s user base.

Downloading CRLs over HTTPS could pose a chicken and egg problem, when a browser would need to check a CRL to verify the HTTPS connection delivering that exact CRL. Thus, HTTPS is avoided for CRLs.

CRLite

CRLite is an effort to mitigate the performance issues and privacy concerns associated with CRLs. using AMP filters (Approximate membership query filter) for compression of CRLs.

CRLite is built on top CT (Certificate Transparency), using an aggregator to retrieve revocation information for all known, valid TLS certificates on the web and pushing the data to clients. CRLite uses delta datasets, which reduces the bandwidth necessary to keep clients up to date. It is not an IETF standard, but a proprietary technique developed by Mozilla and used in the Firefox web browser.

Let’s revoke

Let’s Revoke uses bit vectors of revocation statuses, called CRVs (Certificate Revocation Vector). This saves a lot of bandwidth. With only one bit used for the certificate status – certificate is ok or certificate is revoked, Let’s revoke offers less information than CRLs (revocation reason, revocation date).

Let’s revoke is inspired by CRLite, but eliminates the need for an aggregator, while maintaining global revocation coverage.

security considerations

In 2024, while evaluating the download size of CRLs for the top 50 most popular intermediate CAs in the wild, Software Engineer Rob Seastrom noted, that for 17 of the 50 intermediate CAs, hostnames providing the CRLs didn’t resolve, up to 16 hostnames for one company alone.

"We suspect that these passed QA (if any) because of support for partial domain names in resolvers (the "search" directive in resolv.conf) and wonder if any of the usual suspects have anything to say about CRL publishing endpoints that can't be resolved. "
Rob Seastrom, How Big Are CRLs That Are Found In The Wild?

reference

IETF, RFC 2459 Internet X.509 Public Key Infrastructure Certificate and CRL Profile IETF, RFC 5280, 2008 Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile

Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile RFC 5280, 5.3.1. Reason Code

CRLite: A Scalable System for Pushing All TLS Revocations to All Browsers

Trevor Smith, Luke Dickinson - Kent Seamons, NDSS Symposium Let's Revoke - Scalable Global Certificate Revocation technotes.seastrom.com How Big Are CRLs That Are Found In The Wild?
x