内网配置ssl stapling需先确认证书含ocsp地址,再配内网resolver及ssl_stapling_verify等指令;推荐用cron拉取ocsp响应并本地缓存,通过ssl_stapling_file启用,避免网络依赖。

在内网环境中配置 ssl_stapling 实现 HTTPS 加速,关键不是强行启用 Stapling,而是让 Nginx 能稳定、低延迟地获取并验证 OCSP 响应。由于内网通常无法访问公网 CA 的 OCSP 服务器,直接依赖 resolver 往往失败或引发握手延迟。正确做法是:明确区分环境类型,按需选择 DNS 解析策略,并确保所有必要组件协同工作。
确认证书是否支持 OCSP Stapling
Stapling 前提是证书中包含有效的 authorityInfoAccess 扩展(即 OCSP 响应器地址)。用以下命令检查:
openssl x509 -in server.crt -text -noout | grep -A1 "OCSP"
若无输出,说明证书未提供 OCSP 地址,ssl_stapling 将无法生效。此时需联系签发方(如私有 CA)重新签发带 OCSP URL 的证书,或自行配置私有 OCSP 响应器。
内网使用私有 CA 时的 resolver 配置要点
当内网部署了私有 OCSP 响应器(如通过 CFSSL 或 OpenSSL 搭建),Nginx 需能解析其域名(如 ocsp.internal-ca.local)并建立连接。此时 resolver 不是可选项,而是必须项,但不能照搬公网 DNS:
- 在
http块中显式配置内网可用的 DNS 服务,例如:resolver 192.168.1.1 valid=300s; - 避免混用公网 DNS(如 8.8.8.8),防止因 DNS 解析路径跨网段导致超时或失败
- 添加
resolver_timeout 3s;,匹配内网低延迟特性,避免默认 5s 等待拖慢握手 - 若响应器仅支持 IPv4,可加
ipv6=off;避免不必要的 AAAA 查询
必备配套指令与信任链设置
仅配置 resolver 不足以让 stapling 正常工作。以下指令需成套启用,缺一不可:
-
ssl_stapling on;—— 启用 stapling 功能 -
ssl_stapling_verify on;—— 强制校验 OCSP 响应签名和有效期,防止伪造 -
ssl_trusted_certificate /etc/nginx/ssl/internal-ca-trust.pem;—— 该文件必须只含私有根 CA 和中间证书(按从根到叶顺序拼接),不含服务器证书;用于验证 OCSP 响应签名 -
ssl_certificate和ssl_certificate_key仍需正常指向服务器证书及私钥
建议用 openssl verify -CAfile /etc/nginx/ssl/internal-ca-trust.pem -untrusted ca-intermediate.pem server.crt 提前验证信任链完整性。
推荐采用本地 OCSP 文件缓存(更稳定)
即便配置了内网 resolver,Nginx 内置 stapling 仍可能因网络抖动、OCSP 响应器临时不可达而降级。生产级内网更推荐“主动拉取 + 本地文件缓存”方式:
- 用
cron定期执行:openssl ocsp -issuer ca.crt -cert server.crt -url http://ocsp.internal-ca.local -respout /var/lib/nginx/ocsp/server.ocsp -text - 在 Nginx 中改用:
ssl_stapling_file /var/lib/nginx/ocsp/server.ocsp; - 配合
ssl_stapling on;和ssl_stapling_verify on;即可跳过实时 DNS 查询与 HTTP 请求,彻底规避握手延迟
此方式不依赖 resolver,也不受 OCSP 响应器瞬时故障影响,适合对稳定性要求高的内网系统。











