ssl_stapling 是 Nginx 的 HTTPS 性能优化机制,通过在 TLS 握手时由服务器主动装订 OCSP 响应,避免浏览器额外查询,降低 150–300ms 延迟;启用需满足版本、证书扩展、时间同步、完整证书链及显式 resolver 等硬性条件。

ssl_stapling 是什么
ssl_stapling 是 Nginx 提供的一项 HTTPS 性能优化机制,本质是让服务器在 TLS 握手阶段,主动把证书的吊销状态(OCSP 响应)“装订”进 ServerHello 消息中,而不是让浏览器自己去查 CA 的 OCSP 服务器。这样省掉一次额外的网络请求,通常能减少 150–300ms 的握手延迟,对移动端、高延迟网络或首次访问场景效果尤其明显。
启用 ssl_stapling 的硬性前提
它不是加几行配置就能跑通的功能,缺一不可:
- Nginx 版本 ≥ 1.3.7(推荐 ≥ 1.11.0,错误处理更健壮)
- OpenSSL ≥ 1.0.1(建议用 1.1.1 或更新版)
- 证书必须含
authorityInfoAccess扩展(即内嵌 OCSP 响应器地址),可用命令验证:openssl x509 -in your.crt -text -noout | grep -A1 "OCSP" - 服务器系统时间准确(偏差超过 5 分钟,OCSP 响应会被拒绝)
- 证书链完整:要么
ssl_certificate包含站点证书 + 中间证书,要么单独用ssl_trusted_certificate指定可信 CA 链(如 Let’s Encrypt 的fullchain.pem)
Nginx 中关键配置项说明
以下指令需放在 server 块(监听 443 端口下)或全局 http 块中:
-
ssl_stapling on;—— 必须显式开启,默认为 off -
ssl_stapling_verify on;—— 强烈建议开启,Nginx 会校验 OCSP 响应的签名、有效期和颁发者,防止缓存伪造数据 -
ssl_trusted_certificate /path/to/ca-bundle.pem;—— 指向根证书 + 所有中间证书的 PEM 文件(注意:不是ssl_certificate那个文件) -
resolver 8.8.8.8 1.1.1.1 223.5.5.5 valid=300s;—— 必须显式配置 DNS 解析器;多个 DNS 提升容错性;valid=300s表示缓存 5 分钟 -
resolver_timeout 5s;—— DNS 查询超时设为 5 秒较稳妥,避免因解析卡住拖慢整个握手
⚠️ 注意:resolver 不读取 /etc/resolv.conf;若未配置,Nginx 日志仅提示 no resolver defined to resolve OCSP responder hostname,然后静默关闭 stapling,毫无预警。
验证是否生效
配置完成后,用 OpenSSL 工具验证:
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com -status -tlsextdebug &1 | grep -i "OCSP response"
看到 OCSP Response Status: successful (0x0) 即表示已成功启用。也可使用在线工具(如 SSL Labs 的 SSL Test)查看报告中的 “OCSP Stapling” 项是否为 “Yes”。


















