CRL (Certificate Revocation List)
Definition
A CRL is a list, signed and periodically reissued by a CA, of the serial numbers of certificates it revoked before their expiry date.
A CRL (Certificate Revocation List) is a signed data structure, profiled in RFC 5280, that lists the serial numbers of certificates a CA has revoked, each with a revocation date and an optional reason code such as keyCompromise or superseded. It carries thisUpdate and nextUpdate fields, and certificates point to it through the CRL Distribution Points extension. Large CAs split their lists into many smaller, partitioned CRLs.
Why it matters
CRLs are now the backbone of web PKI revocation. CA/Browser Forum Ballot SC-063 (effective 2024-03-15) made CRLs mandatory for publicly trusted TLS CAs while OCSP became optional, and Let's Encrypt publishes CRLs after ending OCSP. Browsers rarely download CRLs during a handshake; instead they aggregate them: Chrome builds CRLSets, and Mozilla builds CRLite from the CRLs that CAs disclose to root programs. Under the same ballot, short-lived certificates (7 days or less, for certificates issued from 2026-03-15) need not carry CRL or OCSP pointers at all.
Example
# Where is the CRL for this certificate?
openssl x509 -in cert.pem -noout -ext crlDistributionPoints
# Download and inspect it (CRLs are usually DER-encoded)
curl -sO http://crl.example.com/1.crl
openssl crl -in 1.crl -inform DER -noout -text | head -20
The output shows Last Update and Next Update, followed by entries with a Serial Number and a Revocation Date.
Common misconceptions
- CRLs are obsolete and OCSP replaced them. The opposite happened: CRLs are mandatory and OCSP is optional.
- Revocation shows up in real time. A CRL reflects the CA's state at thisUpdate; a new revocation appears only when the next CRL is published and clients pick it up.
- Clients download the CRL on every connection. Mainstream browsers rely on aggregated revocation data, not per-connection downloads.