OCSP 是什么
OCSP 是在线证书状态协议:客户端拿着证书询问签发机构「这张证书还有效吗」(RFC 6960)。它比下载整份吊销列表更轻量、更实时,但客户端直连会带来额外连接,还会把「我在访问谁」这一信息暴露给签发机构。
装订怎么改善这一切
装订的思路是让服务器替客户端去问,把结果缓存下来,在握手时一并下发(RFC 6066 §8)。客户端不必额外连接,隐私也不再外泄。证书里还可以声明「必须装订」,把吊销检查从可选变成硬要求。
基本信息
| 名称 | OCSP 与装订(Stapling) |
|---|---|
| 规范 | RFC 6066 §8 定义装订,RFC 6960 定义协议本身 |
| 优点 | 客户端少一次连接、隐私不外泄、状态更新更及时 |
| 前提 | 服务器能访问签发机构的状态查询服务,并正确配置验证链 |
典型使用场景
- 统一在服务端完成吊销检查,减轻客户端的额外连接
- 排查浏览器提示证书状态异常的告警
- 落实合规要求中关于吊销检查的条款
- 排查装订配置静默失败的问题
检查装订
检查装订
openssl s_client -connect example.com:443 -status </dev/null 2>/dev/null | grep -A3 -i 'OCSP response'
# 服务端配置通常需要同时开启装订与验证,并指定信任链文件
# 只开装订而不配验证链时,验证会持续失败且日志里没有明显提示,需要人工核验相关概念
| 概念 | 作用 | 注意点 |
|---|---|---|
| 状态查询协议 | 在线询问单张证书是否有效 | 比吊销列表更实时、更轻量 |
| 装订 | 服务器代取响应并随握手下发 | 需要服务端能访问签发机构 |
| 必须装订 | 证书级要求必须携带响应 | 部署不到位会导致连接直接失败 |
| 吊销列表 | 签发机构发布的完整清单 | 体积大、更新慢,如今已少用 |
装订失败时服务器通常静默跳过(例如签发机构的状态查询服务不可达):需要靠调试日志或周期性人工核验才能发现。
只打开装订开关不等于完成配置:不配上用于验证的信任链,验证环节会一直失败,效果等同于没有开启。
切换证书或更换签发机构后,装订缓存与信任链都要同步更新:这类遗漏常表现为「换完证书后部分客户端开始报错」。