Nginx 开启网站 OCSP stapling 配置

去年底更换了 AlphaSSL 泛域名证书,刚刚没事就在 SSL/TLS 安全评估报告 网站上检查网站的SSL配置状态,意外发现 OCSP装订 居然没有开启,怪不得谷歌站长核心网页指标的移动设备老是提示:LCP 问题:超过了 2.5 秒(移动设备),需要改进,那么就来重新开启一下吧!

Nginx 开启网站 OCSP stapling 配置

文章插图
OCSP 是什么?OCSP 是在线证书状态协议(Online Certificate Status Protocol)的缩写 ,是一个用于获取 X.509 数字证书撤销状态的网际协议,用于检验证书合法性 。
OCSP 查询需要建立一次完整的 HTTP 查询请求,期间的 DNS 查询、建立 TCP 连接、服务端响应和数据传输都是额外开销,使得建立 TLS 连接花费更多时长 。
后来出现了 OCSP Stapling ,将原本需要客户端实时发起的 OCSP 请求转嫁给服务端,Web 端将主动获取 OCSP 查询结果,并随证书一起发送给客户端,以此让客户端跳过自己去寻求验证的过程,提高 TLS 握手效率和 HTTPS 性能 。
解决方法正常情况下在 Nginx 配置文件中增加 ssl_stapling on 和 ssl_stapling_verify on 即可开启 OCSP,但如果你使用阿里云申请的免费证书,那么就需要配置 ssl_trusted_certificate 才能开启 。
Let\'s encrypt 免费签发的证书其 OCSP Response 不包含 Certificate 信息,因此 ssl_stapling_verify 和 ssl_trusted_certificate 无需设置,只需开启 ssl_stapling on 即可 。
开启 OCSP 完整配置内容如下:
【Nginx 开启网站 OCSP stapling 配置】server{
....
#OCSPstapling配置
ssl_staplingon; #Let\'sencrypt无需配置
ssl_stapling_verifyon; #ssl证书配置
ssl_certificate/path/to/cert.pem;
ssl_certificate_key/path/to/key.pem; #国内部分免费证书需要配置
ssl_trusted_certificate/path/to/cert.pem; #证书校验域名dns服务器
resolver8.8.8.88.8.4.4216.146.35.35216.146.36.36valid=600s;
....
}修改完成后使用命令重启 Nginx,然后使用 OpenSSL 来验证 OCSP Stapling 是否已经成功开启,成功提示:OCSP Response Status: successful (0x0),失败提示:OCSP Response: no response sent,如下图:
#重启Nginx
systemctlrestartnginx #验证OCSPStapling
openssls_client-connect域名:端口-servername域名-status-tlsextdebug&1|grep-i\"OCSPresponse\"
最后总结经过上述配置 OCSP Stapling,对于个人博客,企业网站,下载服务器使用 SSL加密证书 推荐开启 OCSP 配置,用户访问网页时速度上会有非常轻微的提升,尤其对于做谷歌搜索排名优化的站点来说,这简直就是属于加分项 。
另外就是如果你开启了全站CDN加速,那么目前已知 阿里云、腾讯云、百度云 的CDN服务均支持 OCSP装订 功能,只需要勾选即可,无需另外配置 。