#教程# – Nginx开启OCSP加快SSL握手速度,提高网站响应速度

前言

昨天换了萌咖AlphaSSL的新证书,在查询下 MYSSL 的 SSL 状态,看到OCSP装订状态为不支持,瞎弄了半天才把它搞定,为避免大家走博主的弯路,这里就记录下搞定经过 。

图片[1] - #教程# – Nginx开启OCSP加快SSL握手速度,提高网站响应速度 - 云线路

OCSP Stapling

OCSP Stapling 就是为了解决 OCSP 性能问题而生的,工作原理:

网站服务器将自行查询OCSP服务器并缓存响应结果,然后在与浏览器进行 TLS 连接时将 OCSP 查询结果通过 Certificate Status 消息发送给浏览器,这样浏览器就不需要再去查询了。

浏览器客户端也不再需要向任何第三方披露用户的浏览习惯,完美解决了隐私问题。当客户端向服务器发起 SSL 握手请求握手时发送事先缓存的 OCSP 响应,用户只要验证该响应的时效性而不用再向数字证书认证机构(CA)发送请求,避免了客户端验证会产生的阻塞问题,可以加快握手速度。由于 OCSP 响应是无法伪造的,因此这一过程也不会产生额外的安全问题。

配置教程

这里先把博主的部分 server 段的配置给出来,再来解释:

server
    {      
    listen 443 ssl http2;
    server_name yunloc.com;
    return 301 https://www.yunloc.com$request_uri;

    ssl_certificate /usr/local/nginx/conf/ssl/www.yunloc.com.crt;
    ssl_certificate_key /usr/local/nginx/conf/ssl/www.yunloc.com.key;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
    ssl_session_timeout 5m;
    ssl_stapling on;
    ssl_stapling_responder http://ocsp.globalsign.com/alphasslcasha256g4;
    ssl_stapling_verify on;
    ssl_trusted_certificate /usr/local/nginx/conf/ssl/ocsp.yunloc.crt;
    resolver 8.8.8.8 8.8.4.4 223.5.5.5 valid=3600s;
    resolver_timeout 2s;	
    ssl_session_cache builtin:1000 shared:SSL:10m;
    ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;
    ssl_buffer_size 4k;
    ssl_session_tickets off;	
    ssl_early_data on;	
    proxy_set_header Early-Data $ssl_early_data;

开启 OCSP Stapling

客户端访问时 NginX 将去指定的证书中查找 OCSP 服务的地址获得响应内容后通过证书链下发给客户端;

ssl_stapling on;

响应信任链

ssl_stapling_responder http://ocsp.globalsign.com/alphasslcasha256g4

这里是使用根 CA 和中间证书验证 OCSP 响应的信任链,可以在你的网站地址前的 SSL 小锁里找到

图片[2] - #教程# – Nginx开启OCSP加快SSL握手速度,提高网站响应速度 - 云线路

启用 OCSP 响应

验证 OCSP 信息响应适用的证书;

ssl_stapling_verify on;

指定完整的证书链

ssl_trusted_certificate /usr/local/nginx/conf/ssl/ocsp.yunloc.crt;

博主申请证书的时候没有神马完整的证书链,可直接点 这里生成 完整的证书链

图片[3] - #教程# – Nginx开启OCSP加快SSL握手速度,提高网站响应速度 - 云线路
下载后重命名,放在 SSL 目录就可以 了;

添加 resolver 解析

根据 Nginx 文档最好使用本地 DNS 服务可以防止 DNS 欺骗(DNSspoofing)。使用公共的 DNS 服务存在安全隐患;

OSCP 响应服务器的主机名,valid 表示缓存。(这里博主使用的是谷歌公共的 DNS 解析地址,备用为阿里的 DNS)

resolver 8.8.8.8 8.8.4.4 223.5.5.5 valid=3600s;

resolver_timeout

表示网络超时时间

resolver_timeout 2s;

确认是否安装成功

好了,开启 OCSP 就这 6 个选项,设置好后重启 nginx

service nginx restart

这里查询 OCSP 是否支持

图片[4] - #教程# – Nginx开启OCSP加快SSL握手速度,提高网站响应速度 - 云线路

结语

配置好 OCSP 后,马上去查询了下网站的解析速度,的确是快了那么一丢丢,希望大家也赶快加上。

© 本站文章随意转载,但请注明出处!
THE END
点赞12 分享
评论 共2条
头像
务必使用真实的邮箱地址评论,虚假邮箱的评论将不通过审核及无回复。
提交
头像

昵称

取消
昵称表情代码图片
    • 头像KIMI0