证书吊销:OCSP、CRL与装订
有时证书必须在到期之前被作废——私钥被盗、误签发、服务下线。**吊销(revocation)**就是CA表示"不要再信任这张证书"的机制,它有两种方法外加一项优化。
CRL 与 OCSP
| 方法 | 工作原理 | 缺点 |
|---|---|---|
| CRL | CA发布已吊销序列号的签名列表,客户端下载 | 列表庞大、缓存数小时 |
| OCSP | 客户端就单张证书实时询问CA的响应器 | 延迟+隐私(CA能看到你访问什么) |
两者都在证书中被引用:CRL分发点和AIA的"OCSP URI"。
OCSP装订与Must-Staple
OCSP装订解决了OCSP的延迟和隐私问题:由服务器获取一份带签名和时间戳的OCSP响应,并"装订"进TLS握手,从而客户端完全无需联系CA。Must-Staple是要求必须有有效装订响应的证书标志,弥补了"软失败"漏洞——即当OCSP响应器不可达时浏览器仍接受证书。
现实
浏览器的吊销检查以不一致著称——许多采用软失败,因此当检查无法完成时,已吊销的证书仍可能被接受。这也是证书有效期不断缩短的原因之一:短命证书比吊销更有效地缩小了滥用窗口。参见 检查证书有效期。
可用 Slogical 的 SSL详细检测器 验证服务器的OCSP状态、装订与证书链;本站的基础 SSL/TLS检测 涵盖到期与证书链。背景:证书链。
备注: 装订把OCSP获取转移到你的服务器,因此需要监控——装订了过期或失败响应的服务器,可能让强制Must-Staple的客户端无法连接。