ssl labs 显示 ocsp stapling: no,说明配置未生效,常见原因包括:配置未全写在 server 块内、证书链不完整、resolver 不可用、ocsp 响应器不可达或时间误差超±5分钟,需逐项排查。

SSL Labs 扫描显示 OCSP stapling: No,说明 Nginx 虽已配置 OCSP Stapling,但实际未成功启用或响应。常见原因不是“没配”,而是配置不完整、证书链缺失、上游 OCSP 响应器不可达,或 Nginx 未正确加载/缓存响应。排查需从配置验证、证书链完整性、网络连通性、日志分析四方面入手。
确认 Nginx 配置语法正确且已重载
OCSP Stapling 相关指令必须出现在 server 块内(HTTPS 站点),且仅对启用了 SSL 的 server 生效:
-
ssl_stapling on;— 必须显式开启(默认 off) -
ssl_stapling_verify on;— 强烈建议开启,用于校验 OCSP 响应签名和有效期 -
ssl_trusted_certificate /path/to/fullchain.pem;— 关键!必须指向包含 根证书 + 中间证书 的文件(不能只用站点证书),Nginx 用它验证 OCSP 响应签名 -
resolver 8.8.8.8 1.1.1.1 valid=300s;— 必须配置 DNS 解析器,且地址需能被 Nginx worker 进程访问(如在内网 DNS 受限环境,需指定可用的 DNS 服务器)
配置后务必执行:nginx -t && nginx -s reload,避免配置未生效。
检查证书链是否完整且顺序正确
SSL Labs 要求服务端在 TLS 握手时发送完整的中间证书链(不含根证书)。若 ssl_certificate 指向的文件缺少中间证书,OCSP 响应器无法被正确定位,ssl_stapling_verify on 也会失败。
- 运行
openssl x509 -in your_cert.pem -text -noout | grep "OCSP"查看证书中嵌入的 OCSP 响应器 URL(Authority Information Access字段) - 用
curl -vI或openssl s_client -connect ocsp.your-ca.com:80 -servername ocsp.your-ca.com测试该 URL 是否可访问(注意:部分 CA 的 OCSP 服务仅支持 POST,需用openssl ocsp命令测试) - 确保
ssl_certificate文件内容顺序为:域名证书 → 中间证书(多个则按层级从上到下);ssl_trusted_certificate应额外包含根证书(或使用系统信任库路径,如/etc/ssl/certs/ca-certificates.crt)
验证 OCSP 响应是否能被 Nginx 获取并缓存
Nginx 不主动轮询 OCSP,而是在首次收到客户端 ClientHello 后异步请求一次,并缓存结果(有效期由响应中的 nextUpdate 字段决定)。可通过以下方式确认:
- 临时开启 Nginx 错误日志 debug 级别(在
http或server块加error_log /var/log/nginx/ocsp_debug.log debug;),重启后观察日志中是否出现stapling、ocsp、verify等关键字,例如:SSL_do_handshake() failed (SSL: error:27069065:OCSP routines:STATEFUL_CHECK_RESPONSE:response error) - 用命令手动触发 OCSP 查询,验证响应有效性:
openssl ocsp -issuer intermediate.pem -cert your_domain.pem -url http://ocsp.your-ca.com -text
若返回Response verify OK且状态为good,说明证书和 OCSP 服务本身正常 - 检查
resolver是否受防火墙或 SELinux 限制(尤其在 CentOS/RHEL 上,可能需setsebool -P httpd_can_network_connect 1)
排除客户端与扫描工具干扰
SSL Labs 使用特定 User-Agent 和 TLS 参数模拟客户端行为,有时会因握手细节导致 OCSP stapling 未触发:
- 本地用
openssl s_client -connect example.com:443 -status -servername example.com测试,查看输出中是否有OCSP response:及其内容。若有,说明 Nginx 已正常 stapling,SSL Labs 可能因缓存、超时或 CA 响应策略(如限频)未获取到 - 确保服务器时间准确(误差 > 5 分钟会导致 OCSP 响应被拒绝),运行
ntpq -p或timedatectl status校验 - 某些 CDN 或反向代理(如 Cloudflare)会终止 TLS 并重新发起,此时 OCSP stapling 由前端处理,源站 Nginx 配置无效 — 需确认是否直连源站测试











