开启OCSP装订,确保在不稳定网络环境下提供SSL加密服务

OCSP 全称为 Online Certificate Status Protocol, 是通用的数字证书在线状态查询协议。

RFC 6066第8章中规定了TLS证书状态查询扩展的标准。

RFC 6961定义了多证书状态查询扩展,允许TLS握手中发送多个证书的OCSP响应。

OCSP 服务器是证书颁发机构维护的支持 OCSP 协议的证书状态查询服务器,为各类客户端、浏览器提供数字证书的状态查询服务。任何连接到安装了SSL证书的客户端都可以在建立加密通信时向该SSL证书颁发机构提供的 OCSP 服务器查看该SSL证书的状态。客户端、浏览器可以为安装了处于不正确状态(已经吊销、暂停服务)的证书的网站发出危险或不信任提示,从而保护网站用户的安全。

大多数客户端、浏览器都会在访问HTTPS网站时查询证书的OCSP状态,以进一步确保访问者的安全性。比如 火狐浏览器(FireFox),就默认校验所有的公开信任证书的OCSP状态。只有通过OCSP校验,FireFox才会正常打开您的网站。

OCSP校验失败,火狐浏览器报错并无法打开网站

企业 EV SSL 证书的展示也受OCSP影响 特别对于火狐浏览器的用户,无论您在什么地方购买的 EV SSL 证书,倘若OCSP校验失败,您的浏览器将不会为用户展示地址栏标识。下面的两个截图很好的做了前后对比:

OCSP校验失败,EV不展示企业标识
OCSP校验成功,EV展示企业标识

由于 OCSP 校验失败而导致的客户端无法连接情况会有很多,不仅只反应在浏览器端。如果您为移动 APP 的接入使用了双向验证,且每次接入都校验服务器证书的有效性。还比如您为您的 API 服务器接入开启了严格SSL验证模式,即每次对接API时都校验服务器证书的有效性。等等此类环境下,一旦您的客户端网络连接OCSP服务器出现问题,都有可能导致您的服务中断。因为客户端的网络情况是复杂的,多变的,甚至不可预估的。

解决因网络问题导致的OCSP校验失败 大部分OCSP校验失败的情况都是因为网站访问者所处的网络环境很糟糕导致的。但另一方面,我们的服务器机房所处的网络环境通常是比较稳定的,一般不会存在访问不了颁发机构OCSP服务器的情况。倘若我们可以使用网站服务器代为传递OCSP校验信息,而不是让客户端、浏览器直接访问颁发机构的OCSP服务器。那这个问题将会得到很好的解决。这种代为传递OCSP校验信息的机制称为 OCSP 装订 (OCSP Staping)。

OCSP 装订 可以很好的作为 OCSP查询协议的替代方案,也是目前 Mozilla基金会推崇实施的一种在线证书查询协议扩展。它能够利用您的服务器网络为客户端、浏览器提供证书状态查询服务。用户如果能够访问您的网站,就能够通过您的网站服务器查询到证书的状态。因此,为了更好的为您的用户提供加密的网站访问和接入服务,您应该为您的每一个安装SSL证书的服务器开启OCSP装订。OCSP装订目前的支持状况已经非常成熟,下表列出了支持OCSP装订的基本平台情况 (来自百科):

软件/平台名称适配版本
Httpd/Apache2.3.3 或更高版本
Nginx1.3.7 或更高版本
IISWindows Server 2008 或更高版本
HAProxy1.5.0 或更高版本
LiteSpeed4.2.4 或更高版本
F5 Networks BIG-IP11.6.0 或更高版本
FireFox 浏览器26 或更高版本
IE 浏览器Vista 或更高的Windows版本
Chrome 浏览器/基于其内核的浏览器各版本支持

综上,我们建议您为所有的关键服务器和网站都开启OCSP装订,以此最大程度上确保您的客户始终可以连接到您的网站和对接您的 API 服务。您也可以参考 TrustOcean 发布的为 Nginx、IIS、Apache 开启 OCSP 装订的指导文章,来帮助您部署 OCSP 装订。

Related Posts