在线状态查询实操
该机制针对单张证书返回实时吊销状态,应答值为有效、已吊销或未知三类。使用命令行工具时要指定签发者证书与查询地址,地址通常写在证书的授权信息扩展中。应答本身带签名与时间窗口:只看状态字段是不够的,还要校验应答签名与有效期,否则可能被伪造的响应误导。
基本信息
| 应答语义 | 有效、已吊销、未知;未知表示响应者不掌握该序列号 |
|---|---|
| 查询地址 | 来自证书的授权信息扩展 |
| 签名校验 | 提供响应者证书并校验应答签名 |
| 时间窗口 | 应答带产生时间与有效期 |
典型使用场景
- 应急处置:确认某张证书当前是否已被吊销
- 排错:客户端报已吊销但业务侧认为正常
- 内网 PKI:验证查询服务是否可用
- 合规检查:确认吊销查询链路可执行
- 方案评估:判断是否改为列表方式更合适
查询并阅读应答
查询并阅读应答
openssl x509 -in leaf.pem -noout -ocsp_uri # 取出查询地址
openssl ocsp -issuer issuer.pem -cert leaf.pem -url "$OCSP_URL" -resp_text | head -30
openssl ocsp -issuer issuer.pem -cert leaf.pem -url "$OCSP_URL" -VAfile responder.pem # 校验应答签名三种应答
| 应答 | 含义 | 处理 |
|---|---|---|
| 有效 | 未在吊销名单中 | 正常使用 |
| 已吊销 | 证书已被吊销 | 立即更换 |
| 未知 | 响应者不掌握该序列号 | 不要直接判定证书无效 |
部分 CA 已宣布逐步停用在线查询服务并转向吊销列表(以官方公告为准),查询失败时不要直接判定证书无效,应先确认服务是否已下线。
落地建议
- 把查询地址从证书中取出而不是硬编码
- 校验应答签名与时间窗口
- 对查询服务的可用性做监控
- 保留查询结果作为处置记录
查询失败的常见原因包括出网限制、服务变更与代理拦截;排查时先用命令行直连确认,再判断是网络问题还是证书问题。
排查步骤
- 从目标证书中取出查询地址,确认地址是否正确
- 用签发者证书与叶证书构造查询并读取应答
- 校验应答签名与时间窗口,确认响应可信
- 若查询不通,先排除出网限制与代理拦截
吊销状态查询与吊销列表是互补关系而不是替代关系:列表适合离线批量校验,单证书查询适合即时确认,两者都受客户端实现策略影响。