Nginx启用 OCSP Stapling
OCSP 则是一个在线查询接口,浏览器可以实时查询单个证书的合法性。在每个证书的详细信息中,都可以找到对应颁发机构的 CRL 和 OCSP 地址。
某些客户端会在 TLS 握手阶段进一步协商时,实时查询 OCSP 接口,并在获得结果前阻塞后续流程,这对性能影响很大。
而 OCSP Stapling(OCSP 封套),是指服务端在证书链中包含颁发机构对证书的 OCSP 查询结果,从而让浏览器跳过自己去验证的过程。
服务端有更快的网络,获取 OCSP 响应更容易,也可以将 OCSP 响应缓存起来。
OCSP 响应本身经过了数字签名,无法伪造,所以 OCSP Stapling 技术既提高了握手效率,也不会影响安全性。
开启了OCSP Stapling,跑到证书验证这一步可以省略掉一个 roundtrip,延迟大大减少。
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /path/to/full_chain.pem;
可能会报错:
nginx: [warn] "ssl_stapling" ignored, host not found in OCSP responder "statuse.digitalcertvalidation.com" in the certificate "/usr/local/nginx/conf/ssl/xxx.pem"
这是因为ssl_trusted_certificate
选项应指向证书颁发结构的中间证书+根证书,而不是购买的ssl证书。