nginx开启OCSP Stapling优化https访问性能
# nginx 通过 OCSP Stapling 优化 https 访问性能
本文讲述 nginx 开启 OCSP Stapling 的配置方法, 从而优化 https 的访问性能。因为免费证书的证书校验服务器可能没有国内节点,导致国内用户通过 https 访问站点可能会明显比 http 慢。nginx 开启 OCSP Stapling 即可解决该问题。
# https 站点访问慢的原因分析
因为浏览器访问 https 站点时,至少首次访问会去证书校验服务器检验 https 证书, 但是免费证书的校验服务器一般都在国外,导致国内用户访问的时候,会明显感到慢,甚至经常出现网络错误。
不同的客户端设备的 https 证书校验机制又不尽相同。例如 android 设备会在首次访问 https 站点时,把证书缓存在本地,后续访问就不会去访问校验服务,导致 android 上访问很流畅,但是 ios 设备却体验特别差,甚至压根没法用。
为了解决免费 https 证书访问慢的问题,有个解决方案:OCSP Stapling。
# 检查证书是否已开启 OCSP Stapling
- 通过命令 openssl s_client -connect sofineday.com:443 -servername sofineday.com -status -tlsextdebug < /dev/null 2>&1 | grep "OCSP"
- 若显示如下结果,则表示已开启
OCSP response:
OCSP Response Data:
OCSP Response Status: successful (0x0)
Response Type: Basic OCSP Response
- 若显示如下结果,则表示未开启
OCSP response: no response sent
前往 myssl.com (opens new window) 网站 查看
- 访问https://myssl.com/ (opens new window), 输入域名
- 查看 OCSP 装订状态
若没有开启 ocsp, 显示如下
点击“刷新报告”,更新报告信息
若已开启 ocsp,显示如下
- 访问https://myssl.com/ (opens new window), 输入域名
# 开启 nginx 的 OCSP Stapling 配置
提示
此处只给了 Let's Encrypt 证书的 oscp 配置
若您使用的是其它品牌的证书,配置方法不同,请自行查找教程。
在原有的 https 配置基础之上,加入如下 4 行配置即可
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=60s ipv6=off;
resolver_timeout 5s;
上次更新: 2022-08-17 23:50:50