开启OCSP提升HTTPS速度

背景:根据客服对用户信息的反馈,部分IOS启动app很慢甚至超时,而安卓并无异常。

排查步骤

  • 1.查看nginx的错误日志和服务端的处理日志,并没有发现异常超时的记录;
  • 2.通过还原用户使用场景,用户发送请求到服务器接收到请求,产生了6-10s的延迟,这个直接导致ios 触发原定的3s超时;
  • 3.了解到用户并非出于网络较差环境,或者使用科学上网,于是将问题定位到https验证;
  • 4.因为ios为了促进app审查,使用了https来与服务器通信,而安卓则是跳过验证,这点坐实了https验证的问题。

解决思路

  • 1.检查https证书是否过期,发现各项证书均在有效期内;

  • 2.通过ssllab.com测试域名的各项指标,发现TLS只支持到v1.0-v1.2,v1.3并无支持,而v1.3在验证速度上比历史版本块,其中原因v1.3引入以下特性,速度有很大提升:

    • 相比过去的的版本,引入了新的密钥协商机制 — PSK
    • 支持 0-RTT 数据传输,在建立连接时节省了往返时间
    • 废弃了 3DES、RC4、AES-CBC 等加密组件,废弃了 SHA1、MD5 等哈希算法
    • ServerHello 之后的所有握手消息采取了加密操作,可见明文大大减少
    • 不再允许对加密报文进行压缩、不再允许双方发起重协商
    • DSA 证书不再允许在 TLS 1.3 中使用
  • 3.开启OCSP(Online Certificate Status Protocal), 在nginx的server{}配置中增加以下配置

    • ssl_stapling on;
    • ssl_stapling_verify on;
    • ssl_trusted_certificate /etc/letsencrypt/live/xxx.xxx.com/fullchain.pem;
    • resolver 8.8.8.8 8.8.4.4 1.1.1.1 valid=60s;
    • resolver_timeout 2s;
      然后重启nginx,在ssllab.com验证,OCSP stapling YES。
  • 4.之后验证https速度和http差不多了

你可能感兴趣的:(后端)