OCSP导致https访问特别容易超时

之前网站接口在“微信iOS里的浏览器中”首次打开特别容易超时,然后是各种优化,把能做的优化做完以后,发现首屏打开速度仍然是时好时坏。百思不得其解。

使用微信的开发者工具,网页开发工具用的是chrome,也发现不了问题。顺便吐槽一下,微信开发者工具居然不支持远程调试。

实在没办法,想起来用Charles抓包看看到底怎么回事。

之后看到很多:ocsp.int-x3.letsencrypt.org/75.126.2.43 请求超时

原来,微信内嵌的safari会在线检查 Let’s Encrypt 的证书状态(OCSP),这也是为什么这个现象只发生在微信内的网页。而这个在线服务并不是特别稳定,之前有些时候优化后发现速度快了一点,可能碰巧那段时间OCSP服务比较稳定,而不是因为优化的原因(捂脸)。

之后参考这三篇文章:

https://blog.csdn.net/CUG_ZG/article/details/105508885

https://www.upyun.com/tech/article/338/%E4%B8%8D%E6%98%AF%20HTTPS%20%E6%8B%96%E6%85%A2%E7%BD%91%E7%AB%99%E9%80%9F%E5%BA%A6%EF%BC%8C%E8%80%8C%E6%98%AF%E4%BC%98%E5%8C%96%E5%81%9A%E7%9A%84%E4%B8%8D%E5%A4%9F%E4%BC%98%E7%A7%80.html

https://www.cackui.com/a/zhishi/jianzhan/5165.html

 

开启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

即可。