之前网站接口在“微信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.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
即可。