Nginx开启OCSP Stapling可减少150–300ms HTTPS首次握手延迟,通过服务器代查并装订OCSP响应至ServerHello,省去客户端单独查询;需同时满足版本、证书扩展、时间同步、证书链完整及四条配置指令,缺一即静默失效。

Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
关键提速逻辑
原本流程(客户端主动查):
→ 浏览器收到证书 → 解析 authorityInfoAccess 找 OCSP 地址 → 查 DNS → 建 TCP → 发 HTTP GET → 等响应 → 校验 → 继续握手
启用 Stapling 后(服务器代查+装订):
→ Nginx 启动后定期查 OCSP 并缓存 → 握手时把已验证的响应直接塞进 ServerHello → 客户端一步完成校验
为什么不是加一行就生效
OCSP Stapling 是协同机制,缺一不可,否则会静默失效(Nginx 不报错,但客户端收不到响应):
• Nginx ≥ 1.3.7(生产建议 ≥ 1.11.0,错误处理更稳)
• OpenSSL ≥ 1.0.1(推荐 1.1.1 或更新版)
• 证书含 authorityInfoAccess 扩展(提供 OCSP 响应器地址,可用 openssl x509 -in cert.pem -text -noout | grep -A1 "OCSP" 验证)
• 系统时间误差 ≤ ±5 分钟(OCSP 响应含严格有效期,偏差大则拒绝)
• 证书链完整(ssl_certificate 应为域名证书 + 中间证书合并文件,如 fullchain.pem)
必须配置的四项指令
全部放在 server 块的 HTTPS 配置中:
• ssl_stapling on; —— 显式启用功能(默认关闭)
• ssl_stapling_verify on; —— 强制校验 OCSP 响应签名、颁发者和有效期,防伪造或过期数据
• ssl_trusted_certificate /path/to/ca-bundle.pem; —— 指向中间证书 + 根证书的 PEM 文件(不是你的域名证书),用于验证 OCSP 响应本身可信
• resolver 8.8.8.8 1.1.1.1 223.5.5.5 valid=300s; —— 必须显式指定 DNS 解析器(Nginx 不读 /etc/resolv.conf),多个地址提升容错性
建议补充项
虽非强制,但能显著提升稳定性:
• resolver_timeout 5s; —— 防止 DNS 查询卡住整个 TLS 握手
• 定期用 openssl s_client -connect example.com:443 -status 验证返回中是否有 OCSP Response Status: successful (0x0)

















