必须先用openssl s_client验证OCSP Response Status: successful (0x0)确认stapling生效,再通过curl测time_appconnect对比开启/关闭前后的差异(典型降低150–300ms),并排除Session Ticket干扰以准确分离效果。

不能直接测“TLS 握手时间”来判断 OCSP Stapling 是否降低了延迟,因为 Nginx 不会把 OCSP 装订过程的时间单独剥离上报。真正可验证、可对比的方式,是结合客户端行为观察 + 网络耗时指标交叉分析——重点看它是否跳过了客户端自主查询 OCSP 的那一次网络请求。
用 openssl s_client 确认 stapling 是否真生效
这是所有测试的前提。没这一步,后续延迟对比无意义。
- 执行命令:openssl s_client -connect example.com:443 -servername example.com -status -tlsextdebug
- 必须带 -status 参数,否则客户端不发 OCSP status_request 扩展,Nginx 就不会尝试返回 stapled 响应
- 成功标志:输出中出现 OCSP Response Status: successful (0x0),且有 responder: 地址和有效时间(如 thisUpdate/nextUpdate)
- 失败表现:显示 OCSP response: no response sent,或压根没 OCSP 相关字段——说明配置未生效,此时测延迟也没参考价值
用 curl + time 测 TTFB 中的 time_appconnect 作为代理指标
TLS 握手是首字节延迟(TTFB)中最耗时的一环,而 time_appconnect 字段正好覆盖 DNS、TCP 和 TLS 全流程,其中 TLS 占比最大。开启 stapling 后,这部分通常下降明显。
- 执行命令:curl -o /dev/null -s -w "time_appconnect: %{time_appconnect}\n" https://example.com --resolve "example.com:443:1.2.3.4" -H "Cache-Control: no-cache"
- --resolve 强制指定 IP,绕过本地 DNS 缓存干扰
- -H "Cache-Control: no-cache" 避免 CDN 或服务端缓存影响结果
- 在相同网络环境(如固定云服务器出口)、相同证书链、相同 resolver 设置下,分别测试开启/关闭 stapling 的值
- 典型改善区间为 150–300ms;若差异小于 50ms,需检查是否已启用 Session Ticket(会掩盖 stapling 效果)或客户端复用了旧 session
用 Wireshark 抓包看真实网络行为
当 openssl 显示 “no response sent”,但你确认配置无误时,抓包能定位到底是客户端没问,还是服务端没答。
- 在客户端机器启动抓包,过滤:tls.handshake.type == 1 || tls.handshake.type == 2
- 找到 ServerHello 报文 → 展开 Extensions → status_request → CertificateStatus → OCSPResponse
- 如果看到 OCSPResponse 下有完整 ASN.1 编码数据体,说明 stapling 已装订成功
- 如果 ClientHello 里有 status_request 扩展,但 ServerHello 没 CertificateStatus,说明 Nginx 侧未响应——可能是
ssl_stapling_verify on校验失败、证书链不全、或系统时间偏差超 ±5 分钟
排除 Session Ticket 干扰再对比
Session Ticket 复用会跳过完整握手,导致 time_appconnect 极低,从而掩盖 stapling 的收益。要测 stapling 单独作用,得先确保每次都是全新握手。
- 临时禁用 ticket:
ssl_session_tickets off;,重载 Nginx 后再测 - 或用新客户端(如全新 Docker 容器运行 curl),避免复用旧 ticket
- 也可用 openssl 命令加
-no_ticket参数强制不发 ticket:openssl s_client -connect example.com:443 -servername example.com -status -no_ticket - 再配合前面的 curl 测试,才能更干净地分离出 stapling 对 TLS 握手阶段的影响











