Https优化方案(优化证书验证篇--OCSP)

一句话概括就是:OCSP 是server 把自己的站点证书和中间证书以及根证书打包一起下发到客户端,省去客户端查询的过程。

OCSP实时查询会增加客户端的性能开销。因此,可以考虑通过OCSP stapling的方案来解决:OCSP stapling是一种允许在TLS握手中包含吊销信息的协议功能,启用OCSP stapling后,服务端可以代替客户端完成证书吊销状态的检测,并将全部信息在握手过程中返回给客户端。增加的握手信息大小在1KB以内,但省去了用户代理独立验证吊销状态的时间。
启用OCSP stapling的方式有很多种,比如在线校验。此方式需要支持服务器能够主动访问证书校验服务器才能生效,并且在每次重启nginx的时候会主动请求一次,如果网络不通会导致nginx启动缓慢。

# 启用OCSP stapling
ssl_stapling on;
# valid表示缓存5分钟,resolver_timeout表示网络超时时间
resolver 8.8.8.8 8.8.4.4 223.5.5.5 valid=300s;
resolver_timeout 5s;         
# 启用OCSP响应验证,OCSP信息响应适用的证书   
ssl_stapling_verify on;  
ssl_trusted_certificate /usr/local/nginx/ssl_cert/cd.crt;      

为了更可靠,你也可以人工负责更新文件内容,设定Nginx直接从文件获取OCSP响应而无需从服务商拉取。

# 启用OCSP stapling
ssl_stapling on;
ssl_stapling_file /usr/local/nginx/oscp/stapling_file.ocsp;            
# 启用OCSP响应验证,OCSP信息响应适用的证书   
ssl_stapling_verify on;  
ssl_trusted_certificate /usr/local/nginx/ssl_cert/cd.crt;      

nginx配置示例 *.conf文件

# OCSP Stapling
    # fetch OCSP records from URL in ssl_certificate and cache them
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 114.114.114.114 8.8.8.8 8.8.4.4 223.5.5.5 valid=300s;
    resolver_timeout 5s;
    ssl_trusted_certificate chain.pem;

操作指导可以看这篇详细的 https://quchao.com/entry/how-to-configure-ocsp-stapling-on-nginx-for-the-certificates-issued-by-lets-encrypt/

你可能感兴趣的:(HTTPS)