OCSP(Online Certificate Status Protocol,在线证书状态协议)是用来检验证书合法性的在线查询协议,当我们通过HTTPS访问网站的时候,客户端(浏览器或其他设备)会首先通过证书颁发机构的证书吊销列表(CRL)或者数字证书在线状态协议(OCSP)记录验证网站服务器的证书是否有效。

因为需要去证书颁发机构查询,比较耗时,所以有了 OCSP Stapling。

什么是 OCSP Stapling

为了降低客户端每次去访问OCSP服务器查询SSL证书的状态所耗费的时间,OCSP Stapling 服务端主动获取 OCSP 查询结果并随着证书一起发送给客户端。这样一来,客户端就无需每次都向证书颁发机构的 OCSP 进行查询了,从而让客户端跳过自己去验证的过程,提高 TLS 握手效率。

开启 OCSP Stapling

  1. 验证状态

    openssl s_client -connect wonpn.com:443 -servername wonpn.com -status -tlsextdebug < /dev/null 2>&1 | grep -i "OCSP response"

    返回:OCSP response: no response sent 说明未开启。

  2. 导出证书,我这里是从Firefox浏览器里导出。(注意域名的导含链证书
    82054d13ly1fqpb6e3jraj20t60hkjsj.jpg
  3. 将导出的crt证书文件上传至服务器,nginx加入以下配置:

    ssl_stapling             on;
    ssl_stapling_verify      on;
    ssl_trusted_certificate /etc/nginx/ssl/ocsp.crt;
    

    重启nginx

    service nginx restart  
    
  4. 再次验证

    返回:

    OCSP response:
    OCSP Response Data:
    OCSP Response Status: successful (0x0)
    Response Type: Basic OCSP Response

    说明配置成功。