如何通过 Nginx 配置 ssl_stapling 解决 HTTPS 握手阶段的证书校验延迟

浅萱小哥_1938

浅萱小哥_1938

2026-05-02

703人浏览

原创

nginx的ssl_stapling需满足证书含有效ocsp uri、配置正确resolver、ssl_trusted_certificate拼接顺序正确等条件才真正生效,否则静默失效。

如何通过 nginx 配置 ssl_stapling 解决 https 握手阶段的证书校验延迟

Nginx 的 ssl_stapling 能直接解决 HTTPS 握手时客户端自行查询 OCSP 导致的卡顿问题,但**开个 on 就生效是最大误区**——多数延迟未缓解,其实是 stapling 根本没跑起来。

确认证书是否带 OCSP 地址(否则 stapling 从不触发)

Nginx 不会报错,但 ssl_stapling on 会静默失效。必须验证证书 AIA 扩展里真有可用的 OCSP URI:

运行 openssl x509 -in /path/to/cert.pem -text -noout | grep -A1 "OCSP"

若无输出或显示 URI: http:// 后为空、域名不可达(如 http://ocsp.example.com 但 DNS 解析失败),stapling 就不会发起请求

  • Let’s Encrypt 证书通常含 http://ocsp.int-x3.letsencrypt.org/,可用
  • 自签名或私有 CA 证书默认不带 OCSP URI,需重签或手动注入(用 openssl ca -extensions v3_ocsp 等)
  • 中间证书缺失也会导致 AIA 解析失败——ssl_certificate 必须是 fullchain.pem(服务器证书 + 中间证书),不能只放域名证书

resolver 必须显式配置且能连通 OCSP 域名

Nginx 完全忽略系统 /etc/resolv.conf,不配 resolver 就等于没 DNS,OCSP 查询直接超时降级。

在 http 或 server 块中加:

resolver 1.1.1.1 8.8.8.8 valid=300s;
resolver_timeout 5s;

valid=300s 避免频繁解析;resolver_timeout 5s 防止一次 DNS 卡住整个握手

SSL Certificate Monitor
SSL Certificate Monitor

检查一个或多个域名的 SSL/TLS 证书到期时间、颁发者、协议及 SAN 信息,用于应要求检查证书、监控到期或验证 HTTPS 等场景。

下载
  • 若 OCSP 地址是内网域名(如 ocsp.internal-ca.local),resolver 必须指向能解析它的 DNS(如内网 CoreDNS),公网 DNS(如 1.1.1.1)会失败
  • 测试连通性:用 dig @1.1.1.1 ocsp.int-x3.letsencrypt.org 或 curl -v http://ocsp.int-x3.letsencrypt.org 确认 DNS 和 HTTP 层都通
  • 多个 resolver 可并列写,Nginx 会轮询,防单点故障

ssl_stapling_verify on 依赖 ssl_trusted_certificate 正确拼接

开启校验后,Nginx 会用 ssl_trusted_certificate 文件验证 OCSP 响应签名。文件错一个字节,stapling 就被禁用,日志里只报 certificate verify failed。

该文件不是 ssl_certificate,而是专用于 OCSP 验证的 CA 信任链:

  • 内容必须按顺序拼接:**中间证书在前,根证书在后**(例如 Let’s Encrypt 的 chain.pem)
  • 不能包含服务器证书本身,也不能混入无关 CA(如系统 ca-certificates)
  • 验证方式:openssl ocsp -issuer intermediate.crt -cert server.crt -url http://ocsp.int-x3.letsencrypt.org/ -CAfile /path/to/ssl_trusted_certificate.pem -text,输出含 CertStatus: good 才算有效
  • 路径权限要放开:chown www-data:www-data /path/to/trust.pem,否则 Nginx worker 进程读不了

内网私有 CA 必须放弃自动 stapling,改用文件缓存

私有 OCSP 响应器往往没有公网 DNS、受防火墙限制,Nginx 内置的 resolver + 自动拉取机制基本不可用。

可靠做法是:定期用 openssl ocsp 主动获取响应,写入本地文件,再由 Nginx 直接加载:

openssl ocsp -issuer ca.crt -cert server.crt -url http://ocsp.internal-ca.local \
  -respout /var/lib/nginx/ocsp/server.ocsp -text

然后配置:

ssl_stapling_file /var/lib/nginx/ocsp/server.ocsp;
ssl_stapling on;
ssl_stapling_verify on;
  • ssl_stapling_file 指向的是二进制 OCSP 响应(不是文本),-respout 参数生成的就是它
  • 用 cron 定期更新(如每 4 小时),但注意检查 OCSP 响应里的 nextUpdate 时间,别缓存过期响应
  • 此时 resolver 和 ssl_trusted_certificate 仍需保留——前者虽不用来查 OCSP 域名,但可能被其他模块(如 proxy_pass)复用;后者仍用于验证本地缓存响应的签名
实际生效与否,最简单的验证方式是:用 openssl s_client -connect example.com:443 -status -servername example.com 2>&1 | grep -A2 "OCSP response"。看到 OCSP Response Status: successful (0x0) 和 CertStatus: good 才算真正落地。很多线上环境看似配置完整,但漏掉了中间证书拼接顺序或 resolver 权限,结果 stapling 始终处于“假启用”状态。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.27

403

5

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.04

3647

6

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

2023.08.04

6385

6

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

581

5

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.07.09

1496

5

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

2024.08.07

3978

3

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

2026.01.13

122

12

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

2026.01.13

497

23

Nginx跨平台安装实操指南:Windows、macOS与Linux环境快速搭建
Nginx跨平台安装实操指南:Windows、macOS与Linux环境快速搭建

本指南详解Nginx在Windows、macOS及Linux系统的安装全流程。涵盖官方包解压、Homebrew一键部署、APT/YUM源配置及Docker容器化方案。无论新手或开发者,均可快速搭建运行环境,掌握跨平台核心指令,为后续配置与调优奠定坚实基础。

2026.03.16

159

12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
零基础精通 PS 视频教程
零基础精通 PS 视频教程

共268课时 | 120万人学习

前端工程师必备技能—PS切图
前端工程师必备技能—PS切图

共11课时 | 2.2万人学习

麦子学院Photoshop切片视频教程
麦子学院Photoshop切片视频教程

共13课时 | 4.3万人学习