SSL证书吊销检查
虽然证书吊销状态在不断变化,并且用户代理对证书吊销的行为差异很大,但作为服务器,要做的就是尽可能快地传递吊销信息。实际操作中转化为以下这些规则。
使用带OCSP信息的证书
OCSP被设计用于提供实时查询,允许用户代理只请求访问网站的吊销信息。因此查询简短而快速(一个HTTP请求)。相比之下CRL是一个包含大量被吊销证书的列表。一些用户代理只有当OCSP信息不可用的时候才下载CRL,这种情况下浏览器与你的网站的通讯将被暂停,直到CRL下载完成。几十秒的延迟都不少见,尤其是通过慢速的网络连接时(想想移动设备)。
使用具有快速且可靠的OCSP响应程序的CA
不同CA之间的OCSP响应程序性能也有所不同。缓慢和错误的OCSP响应程序会潜在地导致性能下降,这个现实被隐藏了很长一段时间。在你向CA提交之前先检查他们的历史OCSP响应程序。
另一个选择CA的标准是它更新OCSP响应程序的速度。为了避免网站错误,你希望自己的证书一被颁发就加入到OCSP响应程序中。令人费解的是,有些CA对于新证书的OCSP更新拖延很久,这个期间OCSP响应程序都会返回错误。
部署OSCP stapling
OCSP stapling是一种允许在TLS握手中包含吊销信息(整个OCSP响应)的协议功能。启用OCSP stapling之后,通过给予用户代理进行吊销检查的全部信息以带来更好的性能。OCSP stapling增加握手大约450字节,会让握手略微变慢,但可以省去用户代理通过独立的连接获取CA的OCSP响应程序来查询吊销信息。
OCSP响应大小因签发CA的实际部署不同而不同。与最终实体证书(正在检查吊销的)具有相同CA签名的OCSP响应会比较简短。因为用户代理已经有签发CA的证书,OCSP响应可以只包含吊销状态和签名。
一些CA喜欢使用不同的证书对OCSP响应进行签名。因为用户代理事先并不知道其他证书,CA必须将它们包含在每个OCSP响应里面。这会给OCSP响应略微增加超过1 KB的大小。
注意:当浏览器跳过吊销状态检查时,虽然会获得更好的性能,但也面临安全风险。EV证书始终检查吊销状态以提供更好的安全性。DV证书不总是检查吊销状态,可能有轻微的性能优势。这个问题可以通过OCSP stapling让两种类型的证书都有相同的性能来解决。