浏览器是否成功获取OCSP状态需通过四步验证:一是开发者工具筛查外部OCSP请求;二是Wireshark抓包确认ServerHello中含非空OCSP响应;三是Chrome证书详情查看吊销状态;四是openssl命令验证服务端stapling输出。

直接验证浏览器是否成功获取 OCSP 状态,不能依赖页面加载快慢或控制台提示,必须观察 TLS 握手阶段的真实行为。核心方法是抓包看客户端是否跳过了外部 OCSP 查询,并确认服务端确已装订响应。
用浏览器开发者工具快速筛查外部 OCSP 请求
这是最直观的第一步:若浏览器仍在查 CA 的 OCSP 地址,说明 stapling 没生效,它没拿到服务器提供的状态。
- 打开 Chrome 或 Edge,按 F12 进入开发者工具 → Network 标签页
- 在过滤栏输入
ocsp或status,然后刷新 HTTPS 页面 - 查看是否有类似
ocsp.digicert.com、ocsp.sectigo.com、ocsp.int-x3.letsencrypt.org的请求 - 若出现且状态为 200(尤其是返回二进制
application/ocsp-response),说明浏览器被迫自行查询 → stapling 未起作用
用 Wireshark 抓包确认 ServerHello 中是否含 OCSP 响应体
这是技术上最可靠的判断方式,能直接看到 Nginx 是否在 TLS 握手时把 OCSP 数据“装订”进去。
- 在浏览器所在机器(或同局域网测试机)启动 Wireshark,捕获 HTTPS 流量
- 过滤表达式:
tls.handshake.type == 2 && tls.handshake.extensions.status_request == 1 - 找到对应的 ServerHello 包 → 展开 Extensions → status_request → CertificateStatus → response
- 若能看到
OCSPResponse字段且其内容非空(长度 > 100 字节),说明 stapling 成功交付;若该字段完全缺失,或 response 为空,则客户端未收到装订数据
检查浏览器实际使用的证书状态(Chrome 特有路径)
Chrome 会缓存并显示当前连接所用的 OCSP 结果,适合快速复核。
- 地址栏点击锁形图标 → “连接是安全的” → “证书有效”
- 切换到“详细信息”标签 → 展开“证书吊销状态”部分
- 若显示“在线证书状态协议 (OCSP):正常”且时间戳在最近几小时内,大概率是用了 stapled 响应(注意:此信息不区分来源,但结合前两步可交叉印证)
配合 openssl 命令排除服务端问题
浏览器行为受多种因素影响(如证书链、HTTP/2、SNI),需先确认服务端输出稳定可靠。
- 在服务器或本地终端执行:
openssl s_client -connect example.com:443 -servername example.com -status -tlsextdebug 2>/dev/null | grep -A 5 "OCSP response"
- 正常输出应包含:
OCSP response: successful (0x0)responder: ocsp.int-x3.letsencrypt.orgCertStatus: good - 若此处失败,浏览器必然无法获取有效状态;若此处成功但浏览器仍查外部 OCSP,需排查客户端网络策略或证书链兼容性(如旧版 Android 或 Safari 对多证书支持较弱)
不复杂但容易忽略:浏览器是否发送了 status_request 扩展,决定了 Nginx 是否触发 stapling 响应。现代主流浏览器默认开启,但某些内网环境、企业代理或老旧版本可能禁用,此时即使配置正确,也不会触发装订流程。


















