直接用 ssl_stapling_file 指向本地 der 格式 ocsp 响应文件可跳过网络查询,前提需满足三项硬性条件:der 编码、对应域名证书且签名可被 ca 链验证、next update 未过期;配置须同时启用 ssl_stapling、ssl_stapling_verify、指定 ssl_stapling_file 和 ssl_trusted_certificate;需定期更新响应文件并重载 nginx。

直接用 ssl_stapling_file 指向本地 DER 格式 OCSP 响应文件,就能跳过网络查询、DNS 解析和 CA 服务器访问全过程,彻底规避公网延迟。关键不在于“关闭网络”,而在于让 Nginx 完全信任并复用一个已验证有效的响应。
前提:准备合法可用的 OCSP 响应文件
该文件必须满足三项硬性条件,缺一不可:
- 格式为标准 DER 编码(不是 PEM),可用
file example.ocsp确认输出含 data 或 OCSP Response; - 响应对应当前
ssl_certificate中的域名证书,且签名能被ssl_trusted_certificate中的 CA 链验证; - 响应内含有效时间窗口(
Next Update在未来),Nginx 不会自动刷新,过期后需人工替换。
生成步骤(在有网环境一次性完成)
推荐在跳板机或开发机上执行,确保环境可连通 CA 的 OCSP 地址:
- 从证书中提取 OCSP URL:
openssl x509 -in fullchain.pem -noout -text | grep -A1 "OCSP"; - 确认
ssl_trusted_certificate所指文件含完整中间 CA + 根 CA(顺序:中间在前,根在后); - 运行获取命令(注意加
-header Host防 HTTP/1.1 兼容问题):openssl ocsp -issuer intermediate.crt -cert example.com.crt -url http://ocsp.int-x3.letsencrypt.org -header "Host" "ocsp.int-x3.letsencrypt.org" -respout /tmp/example.ocsp; - 立即验证:
openssl ocsp -respin /tmp/example.ocsp -CAfile full-chain-trusted.pem -text,确认输出含 Response verify OK 且 Next Update 合理。
Nginx 配置要点(离线专用)
以下四行必须同时存在,并放在 server 块 HTTPS 监听内:
-
ssl_stapling on;—— 启用 stapling 功能,否则不发送响应; -
ssl_stapling_verify on;—— 强制校验本地文件签名与有效期,防止伪造或过期数据; -
ssl_stapling_file /var/lib/nginx/ocsp/example.ocsp;—— 显式指定 DER 文件路径; -
ssl_trusted_certificate /etc/nginx/ssl/internal-ca-trust.pem;—— 提供验证该 OCSP 响应所需的可信 CA 链(不能是ssl_certificate文件)。
无需配置 resolver,也不建议开启 ssl_stapling 自动模式,避免因网络不可达触发降级逻辑。
维护提醒
OCSP 响应不是一劳永逸的:
- 查看有效期:
openssl ocsp -respin example.ocsp -text | grep "Next Update"; - 建议用
cron定期更新(如每 4 小时),但更新频率不能超过Next Update时间; - 更新后 reload Nginx:
nginx -t && nginx -s reload,无需重启。











