# CRL（证书吊销列表）是什么？定义、例子与常见误区

> CRL 是由 CA 签名并定期重新发布的证书吊销列表，列出它在证书到期前就已吊销的证书序列号。

Source: https://ssl.sh/zh/glossary/crl/
Last updated: 2026-11-10

CRL 是 [RFC 5280](https://www.rfc-editor.org/rfc/rfc5280) 规定格式的签名数据结构，列出 CA 已吊销证书的序列号，每条记录带吊销时间，并可附带原因码，例如 keyCompromise（密钥泄露）、superseded（已被取代）。CRL 本身有 thisUpdate 和 nextUpdate 字段，证书通过“CRL 分发点”（CRL Distribution Points）扩展指向它。大型 CA 会把列表拆分成许多较小的分片 CRL。

## 为什么重要
CRL 如今是 Web PKI [吊销](https://ssl.sh/zh/glossary/revocation/)机制的主干。CA/B 论坛 SC-063 投票（2024-03-15 生效）规定公开信任的 TLS CA 必须提供 CRL，OCSP 则改为可选；Let's Encrypt 结束 OCSP 之后同样发布 CRL。浏览器很少在握手时下载 CRL，而是集中汇总：Chrome 生成 CRLSets，Mozilla 用 CA 向根证书计划披露的 CRL 生成 [CRLite](https://ssl.sh/zh/glossary/crlite/)。同一投票还规定，有效期不超过 7 天的短期证书（2026-03-15 起签发）可以不带 CRL 或 OCSP 地址。

## 例子
```bash
# 这张证书的 CRL 在哪里？
openssl x509 -in cert.pem -noout -ext crlDistributionPoints

# 下载并查看（CRL 通常是 DER 编码）
curl -sO http://crl.example.com/1.crl
openssl crl -in 1.crl -inform DER -noout -text | head -20
```

输出里可以看到 Last Update、Next Update，以及一条条带 Serial Number 和 Revocation Date 的吊销记录。

## 常见误区
- **CRL 已经过时，被 OCSP 取代了。** 恰恰相反，现在 CRL 是强制的，OCSP 才是可选的。
- **吊销之后所有客户端立刻知道。** CRL 反映的是 thisUpdate 时刻的状态，新的吊销要等下一版 CRL 发布、再被浏览器汇总下发后才会生效。
- **客户端每次连接都会下载 CRL。** 主流浏览器依赖汇总好的吊销数据，并不会逐次下载。

## 相关术语

- [证书吊销](https://ssl.sh/zh/glossary/revocation/): 证书吊销是 CA 在证书到期前宣布其作废的操作，通过 CRL 或 OCSP 对外公布，使客户端不再信任这张证书。
- [OCSP](https://ssl.sh/zh/glossary/ocsp/): OCSP 是 RFC 6960 定义的在线证书状态协议，客户端可以向 CA 的响应服务器查询某一张证书当前是有效、已吊销还是未知。
- [CRLite](https://ssl.sh/zh/glossary/crlite/): CRLite 是 Mozilla 为 Firefox 打造的压缩吊销数据集，浏览器无需联系 CA，就能在本地判断公开记录的证书是否已被吊销。
- [X.509](https://ssl.sh/zh/glossary/x509/): X.509 是 ITU-T 制定的公钥证书标准格式，其互联网配置规范 RFC 5280 规定了 TLS 所用证书的结构和验证方法。
- [证书颁发机构](https://ssl.sh/zh/glossary/certificate-authority/): 证书颁发机构（CA）是负责审核申请者、签发数字证书，并把公钥与域名或身份绑定在一起的机构。
- [证书序列号](https://ssl.sh/zh/glossary/certificate-serial-number/): 证书序列号是 CA 为每张证书分配的正整数，与颁发者名称一起唯一标识一张证书，吊销列表和 OCSP 都靠它定位证书。
- [短期证书](https://ssl.sh/zh/glossary/short-lived-certificate/): 短期证书是有效期只有几天的 TLS 证书，靠快速过期而不是吊销来限制被盗证书可被滥用的时间。
