博客网页在iPhone的微信里面打开一直比较慢,一开始没在意,以为是服务器的锅。我在安卓手机上打开发现比iPhone上快得多,每次打开网站都是秒开。
后面发现是Let's Encrypt被墙的问题,iOS平台还涉及对CA证书的有效性进行验证。这个验证就牵扯出了ssl的ocsp stapling。
在nginx上配置ocsp stapling:
ssl_trusted_certificate /etc/letsencrypt/live/your.domain.com/fullchain.pem; # 启用OCSP stapling ssl_stapling on; ssl_stapling_verify on; # valid表示缓存5分钟 resolver 8.8.8.8 8.8.4.4 valid=300s; # 网络超时时间 resolver_timeout 5s; # 启用OCSP stapling
配置好一测试,iPhone上打开社区真明显快了,完美。
到这里,问题都解决了。为什么Android没有这个问题?
Android没有问题的原因是,Google不满意ocsp这个解决方案,所以所有google的产品,无论是android还是chrome都不进行ocsp检查。
Flutter写的app在iOS上偶尔会发生了界面卡顿甚至冻结10多秒,但在Android正常。
总结:
1、使用国内的ssl证书,换掉Let's Encrypt 证书,因为他使用akamai cdn分发ocsp状态,akamai.net基本被墙。
2、服务开启OCSP Stapling,因为能减少http请求次数,优化速度。
3、阿里云腾讯云都有国内的一年的免费证书。
文章评论(0)