openssl ocsp 是什么
openssl ocsp 作为客户端向 OCSP 响应者查询单张证书的吊销状态,也可以用来解析服务端装订的响应。它常用于排障:确认吊销链路是否工作、响应签名是否可信、响应时间戳是否新鲜。相比下载整份 CRL,OCSP 的查询粒度更细、响应更小,但引入了对响应者可用性与网络可达性的依赖,因此链路排查要同时看「状态」和「能不能拿到」。
基本信息
| 查询 | openssl ocsp -issuer ca.pem -cert leaf.pem -url http://ocsp.example.com -resp_text |
|---|---|
| 状态含义 | good / revoked / unknown(unknown 表示响应者不管理该证书) |
| 装订查看 | 配合 s_client -status 观察服务端提供的响应 |
| 校签 | 用 CAfile 或 VAfile 校验响应签名与链 |
| 时间字段 | producedAt 与 nextUpdate 用于判断响应是否新鲜 |
典型使用场景
- 确认某张证书是否真的已被吊销
- 排查客户端偶发拒绝连接是否为吊销检查失败
- 验证 OCSP 装订是否生效(结合 s_client -status)
- 内网出口受限时确认响应者是否可达
- 评估使用 CRL 还是 OCSP,比较实时性与运维成本
查询与校验
查询与校验
# 直接查询单张证书状态
openssl ocsp -issuer ca.pem -cert leaf.pem -url http://ocsp.example.com -resp_text | head -20
# 校验响应签名
openssl ocsp -issuer ca.pem -cert leaf.pem -url http://ocsp.example.com -CAfile ca.pem
# 观察服务端装订的响应
openssl s_client -connect example.com:443 -servername example.com -status </dev/null 2>&1 | grep -A4 'OCSP Response'响应状态与含义
| 响应状态 | 含义 | 处理建议 |
|---|---|---|
| good | 证书未被吊销 | 正常放行,同时留意响应新鲜度 |
| revoked | 证书已吊销 | 拒绝连接并排查吊销原因 |
| unknown | 响应者不管理该证书 | 不要当作已吊销,改用正确响应者或 CRL |
| 无响应或超时 | 网络或响应者不可达 | 先查出口与 DNS,再判断吊销状态 |
内网查询外部 OCSP 经常超时:先确认出口策略与 DNS 解析,再判断吊销状态本身。若响应里的时间字段缺失或已过期,说明拿到的信息不可信,此时更稳妥的做法是结合 CRL 与本地策略做决策。
补充:OCSP 响应本身也有有效期(nextUpdate),缓存过久的响应会让判断失真。部分客户端在拿不到响应时采取「软失败」,即继续放行连接,此时吊销检查实际上处于失效状态;评估安全策略时要明确采用软失败还是硬失败。