# nginx 通过 OCSP Stapling 优化 https 访问性能 {#nginx-通过-ocsp-stapling-优化-https-访问性能}
本文讲述 nginx 开启 OCSP Stapling 的配置方法, 从而优化 https 的访问性能。因为免费证书的证书校验服务器可能没有国内节点,导致国内用户通过 https 访问站点可能会明显比 http 慢。nginx 开启 OCSP Stapling 即可解决该问题。
# https 站点访问慢的原因分析 {#https-站点访问慢的原因分析}
因为浏览器访问 https 站点时,至少首次访问会去证书校验服务器检验 https 证书, 但是免费证书的校验服务器一般都在国外,导致国内用户访问的时候,会明显感到慢,甚至经常出现网络错误。
不同的客户端设备的 https 证书校验机制又不尽相同。例如 android 设备会在首次访问 https 站点时,把证书缓存在本地,后续访问就不会去访问校验服务,导致 android 上访问很流畅,但是 ios 设备却体验特别差,甚至压根没法用。
为了解决免费 https 证书访问慢的问题,有个解决方案:OCSP Stapling。
# 检查证书是否已开启 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 配置 {#开启-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;