开启OCSP Stapling需同时满足四项核心配置:ssl_stapling on、ssl_stapling_verify on、ssl_trusted_certificate指向完整CA链、显式配置resolver(如8.8.8.8 1.1.1.1 valid=300s),缺一不可;还需证书含OCSP URI、Nginx≥1.3.7、OpenSSL≥1.0.1、系统时间准确、网络可达OCSP地址。

开启 OCSP Stapling 不是加一行 ssl_stapling on 就能见效的事。它真正起效,依赖服务端稳定获取、严格验证、及时分发由 CA 签发的证书状态响应。配置不到位,客户端仍会自行连接 OCSP 服务器,延迟照旧、隐私照漏。
确认证书和环境是否支持
OCSP Stapling 无法启动,往往卡在最基础环节:
- 用
openssl x509 -in your_cert.pem -text -noout | grep -A1 "OCSP"检查证书是否含Authority Information Access扩展,且其中明确列出OCSP - URI:。没有这一行,Nginx 根本找不到查询地址; - Nginx 版本需 ≥ 1.3.7,生产建议 ≥ 1.11.0;OpenSSL 需 ≥ 1.0.1;
- 服务器必须能直连证书里的 OCSP 地址(如
http://ocsp.int-x3.letsencrypt.org),可用openssl ocsp -url [URL] -cert your.crt -CAfile chain.pem -text手动测试,确认返回responseStatus: successful和CertStatus: good; - 系统时间偏差不能超过 ±5 分钟——OCSP 响应内含
thisUpdate和nextUpdate,超时即被拒绝; - 证书链必须完整:Nginx 的
ssl_certificate应为域名证书 + 全部中间证书合并的 PEM(如 Let’s Encrypt 的fullchain.pem)。
四条核心配置缺一不可
仅写 ssl_stapling on 和 ssl_stapling_verify on 是常见误区。以下四项必须同时存在、路径准确、作用明确:
-
ssl_stapling on;:启用主动获取与下发机制; -
ssl_stapling_verify on;:强制校验 OCSP 响应签名、有效期及证书链可信性,防止缓存伪造或过期响应; -
ssl_trusted_certificate /path/to/ca-bundle.pem;:这不是ssl_certificate文件,而是专用于验证 OCSP 响应签名的“信任锚”,须包含签发 OCSP 响应器的中间 CA + 根 CA(顺序:中间在前、根在后); -
resolver 8.8.8.8 1.1.1.1 223.5.5.5 valid=300s;:显式指定 DNS 解析器,Nginx 不读取系统/etc/resolv.conf;valid=300s控制 DNS 缓存寿命,避免因解析失效导致 stapling 静默关闭。
建议追加 resolver_timeout 5s;,防止 DNS 查询阻塞 TLS 握手。
提升稳定性与可观测性
让 stapling 从“偶尔工作”变成“长期可靠”,关键在容错与监控:
- 启用共享内存缓存:
ssl_stapling_cache shared:ocsp:1m;(1MB 可存约 500 条响应),支持多 worker 复用,减少重复请求; - 定期抽查生效状态:
openssl s_client -connect example.com:443 -status -servername example.com 2>&1 | grep -A 2 "OCSP response",确认输出含successful (0x0)和CertStatus: good; - 紧盯 Nginx error log:搜索
ocsp或stapling,重点关注三类错误:no responder URL(证书无 OCSP 地址)、certificate verify failed(链不全或时间不准)、timeout(DNS 或网络问题); - 若环境受限(如内网、防火墙严格),可配合 cron 定时手动刷新 OCSP 响应文件,并使用
ssl_stapling_file指向本地缓存,作为兜底方案。
为什么它能兼顾速度与隐私
传统流程中,每个客户端在 TLS 握手时都需单独向 CA 的 OCSP 服务器发起 HTTP 请求。这不仅引入额外 RTT(常达数百毫秒),还让 CA 精确掌握“谁在何时访问了哪个网站”。OCSP Stapling 把这个动作前置到服务端:Nginx 主动查、验、缓、发,客户端只需校验签名即完成吊销检查。一次握手内闭环,延迟下降明显,用户行为也不再暴露给第三方。


















