
在SSL(安全套接字层)或其后续版本TLS(传输层安全协议)中,OCSP 是 Online Certificate Status Protocol(在线证书状态协议)的缩写。它是一种用于检查数字证书有效性的协议,主要是为了确认证书是否被撤销(例如,由于私钥泄露或其他安全问题)。
OCSP 的作用
在传统的证书验证中,客户端会下载并检查证书吊销列表(CRL,Certificate Revocation List),但 CRL 可能体积较大且更新不频繁,可能导致延迟或不准确。OCSP 提供了一种更实时的方法,允许客户端直接向证书颁发机构(CA)的 OCSP 服务器查询某个证书的状态。
工作原理
- 证书包含 OCSP 信息:数字证书中通常会嵌入一个 OCSP Responder 的 URL,指向负责提供证书状态的服务器。
- 客户端发起请求:当客户端(如浏览器)需要验证证书时,它会向该 URL 发送一个 OCSP 请求,包含证书的序列号等信息。
- OCSP 响应:OCSP 服务器返回证书的状态,通常有以下三种:
- Good(有效):证书未被撤销。
- Revoked(已撤销):证书已被吊销。
- Unknown(未知):服务器无法确认证书状态。
4.客户端处理:根据响应,客户端决定是否信任该证书。
国内OCSP
国内 OCSP(在线证书状态协议)是由中国本地证书颁发机构提供的证书状态查询服务,用于实时验证 SSL/TLS 证书是否有效。相较国际 OCSP,它的优势包括:响应速度快(本地服务器降低延迟)、符合数据主权和合规性要求(如《网络安全法》)、网络稳定性高(避免跨境访问问题),适用于国内网络环境和国产化需求。
国际 OCSP 优化
我们建议用户开启“OCSP装订”、OCSP Stapling(OCSP 装订)是 SSL/TLS 中优化证书状态验证的一种技术,全称是 Online Certificate Status Protocol Stapling。它通过让服务器主动提供证书的 OCSP 响应,解决了传统 OCSP 的性能和隐私问题。
工作原理
- 服务器预取:网站服务器定期向证书颁发机构(CA)的 OCSP 服务器查询其证书的状态,获取一个签名并带有时间戳的 OCSP 响应(表明证书是否有效或被撤销)。
- 装订到握手:在 SSL/TLS 握手过程中,服务器将这个 OCSP 响应“装订”到证书信息中,一起发送给客户端。
- 客户端验证:客户端直接使用服务器提供的 OCSP 响应来验证证书有效性,无需自己联系 OCSP 服务器。
优点
- 性能提升:减少了客户端到 OCSP 服务器的额外网络请求,降低了延迟,尤其在国际跨境访问中效果明显。
- 隐私保护:客户端无需直接查询 OCSP 服务器,用户访问的网站信息不会暴露给 CA 或第三方。
- 可靠性增强:即使 OCSP 服务器暂时不可用,服务器仍可提供缓存的响应(在有效期内),避免验证失败。
局限性
- 服务器支持:需要网站服务器启用 OCSP Stapling 功能(如 Nginx、Apache 配置),并非所有网站都支持。
- 响应时效:OCSP 响应的有效期有限(通常几小时到几天),服务器需定期更新。
- 客户端兼容性:客户端(如浏览器)需支持解析 Stapling 数据,不过主流浏览器(如 Chrome、Firefox、Safari)已广泛兼容。
应用场景
OCSP Stapling 特别适合需要高性能和隐私保护的网站,尤其是国际化的服务。它已被许多大型 CA(如 Let’s Encrypt)和 CDN(如 Cloudflare)采用,成为 SSL/TLS 验证中的标准优化手段。
简单来说,OCSP Stapling 通过将证书状态验证的责任从客户端转移到服务器,显著提升了效率和安全性。
启用“OCSP装订”可自行搜索引擎搜索开启方法。