什么是CRL?
CRL(Certificate Revocation List,证书吊销列表)是由证书颁发机构(CA)定期签发并公开发布的已失效证书清单。
当SSL证书因
- 私钥泄露、
- 域名变更、
- 误颁发
- CA自身安全事件
等原因被主动撤销时,其序列号即被写入CRL。
浏览器或客户端在TLS握手过程中可通过下载并校验CRL,确认目标证书是否仍处于有效状态。该机制是PKI信任体系中保障HTTPS安全的关键环节之一。
当前主流浏览器已逐步转向OCSP Stapling等更高效的实时验证方式,但CRL仍是合规审计、金融与政务系统强制要求的底层验证手段。
未正确配置CRL分发点(CRL Distribution Points)或忽略CRL过期更新,将导致证书验证失败,在Nginx/Apache等服务器上表现为“NET::ERR_CERT_REVOKED”错误。
CRL在PKI中的定位
CRL与OCSP的本质区别
CRL是一种“批量拉取+本地缓存”的离线验证模式,依赖客户端定时下载完整列表;
而OCSP(Online Certificate Status Protocol)则是向CA指定服务器发起单次HTTP查询,返回即时状态响应。二者均用于解决“证书已吊销但尚未过期”的信任风险,
但CRL对带宽和存储要求更高,OCSP则存在隐私泄露与单点故障隐患。
浏览器对CRL的实际支持现状
Chrome已不再依赖传统CRL作为主要吊销检查机制,
而是结合CRLSets、OCSP及其他浏览器侧安全机制进行证书状态验证,仅在企业策略或特定安全策略(如FIPS 140-2合规环境)下启用;
Firefox仍保留CRL检查开关,但需手动开启;
Safari与Edge则完全依赖OCSP Stapling。
这意味着如果您的网站面向政府、银行或国企客户,必须确保CRL分发点URL可公开访问且响应头包含正确的Content-Type。
CRL核心技术机制
| 项目 | CRL(证书吊销列表) | OCSP |
|---|---|---|
| 查询方式 | 下载完整吊销列表 | 实时查询 |
| 响应速度 | 较慢 | 较快 |
| 网络开销 | 较大 | 较小 |
| 浏览器支持 | 逐步弱化 | 主流方案 |
| 企业合规场景 | 广泛使用 | 广泛使用 |
| 推荐程度 | ★★★☆☆ | ★★★★★ |
工程实践与部署经验
真实运维中,90%以上的CRL相关故障源于三个硬性限制:
- ① 分发点URL不可达(DNS未解析/防火墙拦截);
- ② CRL文件超过10MB(主流CA默认<2MB);
- ③ 证书未嵌入CRL分发点扩展(常见于自签名或老旧OpenSSL生成证书)。
建议在SSL证书部署前,使用SSL证书检查工具验证CRL字段完整性。
对于采用 Let's Encrypt 免费证书的网站,运维人员通常无需主动维护CRL体系,但仍应关注证书吊销和自动续签状态。
您使用锐安信、DigiCert 等商业CA签发的OV/EV证书,由于证书需要持续续签和状态校验,因此仍需关注CRL与OCSP吊销机制是否正常工作。
常见问题
CRL 和 OCSP 有什么区别?
CRL是 CA 机构定期发布的一个“黑名单”文件。每次都要下载太臃肿,且有更新延迟。
OCSP是实时在线查询。浏览器直接给 CA 平台发请求问:“这张证书死了没?”速度快,数据最新。
如何查看 SSL 证书是否已被吊销?
在浏览器点开网址左边的“小锁” → 查看证书详情。如果证书已被 CA 强制吊销,浏览器会直接拦截并弹红字警告。
CRL Distribution Point 是什么意思?
CRL 分发点它是写入 SSL 证书详情里的一段 URL 下载链接。当浏览器拿到你的证书时,会顺着这个网址去 CA 的服务器下载最新的黑名单(CRL 文件),用来校验你的证书有没有被提前废除。
Nginx 如何配置 OCSP Stapling?
配置这个功能可以由 Nginx 服务器代替用户去向 CA 查询证书状态,
nginx
# 开启 OCSP 装订
ssl_stapling on;
ssl_stapling_verify on;
# 指定 DNS 解析服务器(防止 Nginx 无法解析 CA 的域名)
resolver 8.8.8.8 114.114.114.114 valid=300s;
resolver_timeout 5s;
请谨慎使用此类代码。
配置完成后运行 nginx -t 并重启 Nginx 即可。
浏览器提示 NET::ERR_CERT_REVOKED 怎么办?
这个报错代表“该证书已被 CA 机构拉黑/注销”。
说明网站可能涉嫌欺诈、私钥泄露,或者服务商出了大事故。直接关闭网页即可。
CRL文件可以手动下载查看内容吗?
可以。
使用OpenSSL命令 openssl crl -in crl.pem -text -noout 即可解析PEM格式CRL;若为DER格式,需先转换:openssl crl -inform DER -in crl.der -outform PEM -out crl.pem。
证书被加入CRL后还能恢复吗?
不能。
CRL是单向追加式日志,一旦写入即永久留存。唯一补救方式是重新申请新证书并更新服务器配置。
CRL会影响HTTPS性能吗?
会。
首次建立连接时若强制校验CRL,可能增加300–800ms延迟。建议启用OCSP Stapling,并在Nginx中配置 ssl_stapling on 与 ssl_trusted_certificate 指向完整证书链。



京公网安备11010502031690号
网站经营企业工商营业执照
















