Let’s Encrypt证书开启OCSP装订在Nginx服务器中

  • A+
所属分类:随笔杂谈

OCSP Stapling功能是由CDN服务器查询OCSP(Online Certificate Status Protocol)信息,可以降低客户端验证请求延迟,减少等待查询结果的响应时间。

OCSP Stapling功能将查询OCSP信息的工作由CDN服务器完成。CDN通过低频次查询,将查询结果缓存到服务器中。当客户端向服务器发起TLS握手请求时,CDN服务器将证书的OCSP信息和证书链一起发送到客户端。这样可以避免客户端验证会产生的阻塞问题。由于OCSP信息是无法伪造的,因此这一过程不会产生额外的安全问题。

Let's Encrypt证书开启OCSP装订在Nginx服务器中

Nginx开启OCSP装订

以使用acme.sh申请的Let's Encrypt证书为例,证书会存放在~/.acme.sh/example.com文件夹下,下面有这两个文件:

fullchain.cer
example.com.key

编辑Nginx配置文件

ssl_certificate /[用户名]/.acme.sh/example.com/fullchain.cer; #证书路径
ssl_certificate_key /[用户名]/.acme.sh/example.com/example.com.key; #私钥路径
ssl_stapling on; #开启OCSP
resolver 8.8.8.8 8.8.4.4 223.5.5.5 valid=300s; #不加这个可能就会开启失败
ssl_stapling_verify on; #开启OCSP验证
ssl_trusted_certificate /[用户名]/.acme.sh/xmgspace.me/fullchain.cer; #证书链路径

一般情况,重启nginx, 到现在为止就成功结束了。

检测是否成功

可以用这个来测是否开启成功,把example.com换成你自己的域名。

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

1.成功返回的结果

Let's Encrypt证书开启OCSP装订在Nginx服务器中

2.失败返回的结果

Let's Encrypt证书开启OCSP装订在Nginx服务器中

3.我遇到的情况

刚开始一直OCSP response: no response sent

后来搜原因好像是letsencrypt的OCSP地址被污染了。

所以nginx配置文件中加了resolver 8.8.8.8 8.8.4.4 223.5.5.5 valid=300s;

4.其他检测方法

https://myssl.com/

https://www.ssllabs.com/

bwg
小九

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: