直接加 ssl_stapling on 不会生效;ocsp 装订需同时满足 nginx≥1.3.7、证书含有效 ocsp uri 且网络可达、证书链完整(fullchain.pem)、系统时间误差≤±5分钟,以及 server 块内四条配置:ssl_stapling on、ssl_stapling_verify on、ssl_trusted_certificate 指向含中间+根证书的正确路径、resolver 显式配置并带 valid=300s。

直接加 ssl_stapling on 不会生效。OCSP 装订是 Nginx 主动获取、签名验证、缓存分发的一整套机制,必须同时满足版本、网络、证书、时间、配置五项硬性条件,缺一不可。
确认基础运行前提
四项底层条件不达标,后续所有配置都无效:
- Nginx 版本 ≥ 1.3.7;生产环境建议用 1.11.0 或更高——旧版对 OCSP 错误响应处理不稳定,容易静默失败;
-
服务器能直连 OCSP 地址:证书中 Authority Information Access 扩展指定的 URL(如
http://ocsp.int-x3.letsencrypt.org),可用命令测试:openssl ocsp -url http://ocsp.int-x3.letsencrypt.org -cert your.crt -CAfile fullchain.pem -text
看到responseStatus: successful才算通; -
证书链完整:Nginx 的
ssl_certificate必须是域名证书 + 中间证书合并的 PEM 文件(Let’s Encrypt 的fullchain.pem就是标准格式); - 系统时间误差 ≤ 5 分钟:OCSP 响应含严格有效期,偏差过大将被 Nginx 拒绝校验。
写全四条核心配置
只开 ssl_stapling on 和 ssl_stapling_verify on 是常见错误。以下四行需全部出现在 server 块的 443 配置内,路径和参数必须准确:
-
ssl_stapling on;——启用功能,让 Nginx 主动发起 OCSP 请求; -
ssl_stapling_verify on;——强制校验 OCSP 响应的签名、颁发者和时间有效性,防止缓存污染或伪造; -
ssl_trusted_certificate /path/to/full-chain-trusted.pem;——这不是ssl_certificate文件,而是专用于验证 OCSP 响应签名的“信任链”,必须包含签发 OCSP 响应器的中间 CA + 根 CA,顺序为中间证书在前、根证书在后; -
resolver 8.8.8.8 1.1.1.1 valid=300s;——显式指定 DNS 解析器,Nginx 不读/etc/resolv.conf;valid=300s避免 DNS 缓存过期导致 stapling 失效。
推荐追加:resolver_timeout 5s;,防止 DNS 查询卡住 TLS 握手。
验证是否真正生效
配置重载后,用 OpenSSL 工具实测:
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com -status -tlsextdebug &1 | grep -i "OCSP response"若输出中出现 OCSP Response Status: successful (0x0),说明已成功启用;若只显示 OCSP response: no response sent 或无任何 OCSP 相关输出,则配置未生效,需按上述前提逐项排查。











