证书吊销 (Certificate Revocation)
定义
证书吊销是 CA 在证书到期前宣布其作废的操作,通过 CRL 或 OCSP 对外公布,使客户端不再信任这张证书。
证书吊销是指 CA 在证书有效期结束之前宣布它作废:CA 记录证书序列号和吊销原因,再通过 CRL(以及可选的 OCSP)对外公布新状态。常见原因包括私钥泄露、证书签发有误、申请者已不再控制该域名等。中文资料里“吊销”和“撤销”经常混用,指的是同一件事。
为什么重要
CA/B 论坛的 Baseline Requirements 对吊销时限有明确规定:例如确认私钥泄露须在 24 小时内吊销,许多其他原因(包括大部分错误签发)须在 5 天内吊销。但吊销只有在客户端察觉时才有用,现实中的检查一直不够有效:实时 OCSP 多为软失败,还会泄露隐私,所以浏览器转而依赖 Chrome CRLSets、Firefox CRLite 这类推送列表。这也是行业不断缩短证书有效期的重要原因:按 SC-081v3 投票,最长有效期 2026-03-15 起降为 200 天,2027-03-15 起为 100 天,2029-03-15 起为 47 天,即使吊销没能生效,泄露的证书也会很快过期。
例子
用 Certbot 吊销一张私钥已泄露的 Let's Encrypt 证书:
sudo certbot revoke \
--cert-path /etc/letsencrypt/live/example.com/cert.pem \
--reason keycompromise
吊销之后要用新私钥重新申请证书,否则网站会一直挂着一张无效证书。在阿里云、腾讯云等平台购买的证书,通常在对应的证书控制台提交吊销申请。
常见误区
- 删掉证书文件就等于吊销。 只要有人还持有私钥副本,就能继续使用这张证书;只有吊销才会通知客户端不再信任它。
- 吊销后全球立即生效。 要等下一版 CRL、OCSP 更新或浏览器推送才生效,有的客户端甚至从不检查。
- 吊销后还能继续用旧私钥。 如果原因是私钥泄露,必须生成新密钥;按规定,CA 必须拒绝已知泄露的密钥。