KNOWLEDGE ARTICLE
OCSP 是什么?
在线证书状态协议
查询数字证书是否已被颁发机构撤销的协议。
核心解释
证书即使仍在有效期内,也可能因私钥泄露或错误签发而被提前撤销。OCSP 或 OCSP Stapling 用于向客户端提供撤销状态信号。
OCSP 为什么要检查未到期证书的状态
证书仍在有效期内也可能因为私钥泄露、错误签发或主体变化而被提前撤销。OCSP(Online Certificate Status Protocol)允许客户端向 CA 的响应服务查询特定证书状态,得到 good、revoked 或 unknown,并验证响应签名与有效时间。
OCSP 解决的是撤销状态分发,不重新验证域名,也不说明网站内容。传统客户端直接查询会带来额外延迟与隐私暴露;网络阻断和响应服务故障又让浏览器必须在安全与可用性之间决定软失败或硬失败策略。
OCSP Stapling 如何把状态附在握手中
- 服务器定期从 CA 获取签名 OCSP 响应,并在 TLS 握手中 stapling 给客户端,减少客户端单独联系 CA。
- 客户端验证响应对应当前证书、签名有效且处于 thisUpdate 与 nextUpdate 允许时间范围。
- 缓存刷新失败可能导致服务器提供过期状态或不提供 stapling;是否阻断连接取决于证书扩展和客户端策略。
- Must-Staple 可以要求客户端期待 stapled 响应,但部署前需要可靠刷新与监控,否则 OCSP 服务波动可能转化为网站可用性问题。
撤销检查为何不是单一开关
浏览器可能综合 OCSP、CRL、压缩撤销列表、厂商推送和自身风险策略。不同客户端对网络失败、unknown 和短期证书的处理不同,因此一次握手没有 stapling 不代表客户端完全没有撤销保护。
运维侧应关注证书私钥事件响应、CA 撤销是否成功、边缘节点状态是否一致和 stapling 刷新时间。只监控证书到期无法覆盖提前撤销场景。
实际应用与信息解读
取得签名 OCSP 响应时,可以展示证书状态与响应有效期。good 表示响应方在该时间窗口未标记撤销,并不是对网站安全的整体认证;unknown 也需要区分 CA 无记录与查询失败。
没有观察到 stapling 时,准确描述是当前连接未提供可确认的 stapled 响应。浏览器可能采用其他撤销机制,因此不能直接表述为证书未检查。
重点关注
未取得 OCSP 响应不一定代表证书有问题,客户端的失败处理、缓存和其他撤销机制也会影响最终判断。
常见问题
OCSP good 是否证明证书绝对安全?
它只表示响应方在对应时间窗口未把证书标记为撤销,不评价私钥是否刚刚泄露、网站内容或应用漏洞。
没有 OCSP Stapling 会导致浏览器警告吗?
通常不一定,取决于客户端、证书和 Must-Staple 等配置。客户端可能自行查询或使用其他撤销机制。
OCSP 与 CRL 有什么区别?
OCSP 按证书提供在线状态响应,CRL 发布一批已撤销证书列表。客户端与浏览器可能组合多种方式。