首页/安全/等保与合规速查/证书吊销检查:CRL 与 OCSP
密码与认证合规50 条

证书吊销检查:CRL 与 OCSP

证书在有效期内也可能被吊销:应通过 CRL 或 OCSP 检查吊销状态,使用 OCSP Stapling 降低延迟与隐私暴露,并监控证书到期与吊销事件。

等保与合规速查安全更新于 2026-10-13

有效期内的证书也可能是废的

证书被签发后,私钥泄露、主体信息变更、误签发等情况需要让它提前失效,此时靠的不是有效期而是吊销机制:CRL 是 CA 定期发布的吊销列表,OCSP 是按单张证书实时查询状态的在线服务。两者互补——CRL 体积随吊销量增长且更新有周期,OCSP 实时但会暴露访问者查询行为并增加延迟,因此生产环境常用 OCSP Stapling 由服务器代取并随握手下发。

查询与验证示例

查询与验证示例
# 1 向 OCSP 响应器查询单张证书状态
openssl ocsp -issuer ca.crt -cert server.crt -url http://ocsp.example.com -resp_text -noverify
# 2 查看 CRL 内容(发布者、更新时间、吊销条目)
openssl crl -in ca.crl -noout -text | head -20
openssl crl -in ca.crl -noout -lastupdate -nextupdate
# 3 按 CRL 校验证书链(吊销即失败)
openssl verify -crl_check -CRLfile ca.crl -CAfile ca.crt server.crt
# 4 查看服务器是否提供 OCSP Stapling 响应(TLS 1.2/1.3 通用)
openssl s_client -connect example.com:443 -servername example.com -status </dev/null 2>/dev/null | head -20

CRL 与 OCSP 对比

维度CRLOCSP
查询方式下载整份吊销列表,本地匹配按单张证书在线查询
时效性依赖发布周期,可能滞后实时,返回 good/revoked/unknown
开销列表随时间增长,客户端需缓存每次查询产生请求,增加握手延迟
隐私本地查询,不暴露访问行为CA 可获知谁在查询哪张证书
可用性风险列表不可下载时的策略需明确响应器不可用时需决定放行或拒绝
优化手段使用增量 CRL 减小体积OCSP Stapling 由服务器代取并缓存

运维要点

  • 明确吊销检查失败时的策略:放行(软失败)可用性优先,拒绝(硬失败)安全优先,必须写进规范而不是由客户端默认行为决定
  • 同时监控到期与吊销:到期前 30 天提醒,吊销事件发生后核查相关系统的证书是否已撤除
  • 自建 CA 或私有 PKI:保证 CRL 的发布周期与留存,OCSP 响应器要具备冗余与监控
  • 开启 OCSP Stapling 并监控装订有效性:配置错误时表现为装订缺失,客户端仍会回退到直连查询
  • 证书清单化管理:把证书、私钥、用途、责任人与到期时间登记在台账里,与监控联动
  • 客户端兼容性核对:部分老旧客户端不支持吊销检查或对 OCSP 响应格式敏感,改造前做兼容性验证
OpenSSL 命令行验证用于排查与取证,生产系统仍需在应用或网关侧启用吊销检查;仅在浏览器地址栏看到锁形图标,不代表吊销状态被检查过。
把「吊销检查失败即放行」设为全局默认,会让吊销机制在真实攻击中失效;一旦 CA 响应器被劫持或阻断,所有被吊销证书仍可继续使用。

易错点

  • 吊销检查失败默认放行:与吊销机制的初衷矛盾,应明确策略并按系统重要性区别设置
  • 只监控到期不监控吊销:被吊销的证书仍留在系统里使用,形成持续暴露面
  • OCSP 直连查询不做缓存或装订:握手延迟上升,且把用户访问行为暴露给 CA
  • 自建 CA 不维护 CRL 与响应器:吊销功能形同虚设,只能靠人工撤换证书

数据来源与参考

  • RFC 5280(PKIX 证书与 CRL)
  • RFC 6960(OCSP)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌