前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信小程序首次请求慢 Safari浏览器访问慢 pending 10秒 可能是HTTPS证书的锅

微信小程序首次请求慢 Safari浏览器访问慢 pending 10秒 可能是HTTPS证书的锅

作者头像
OwenZhang
发布2021-12-08 17:05:26
1.9K0
发布2021-12-08 17:05:26
举报
文章被收录于专栏:Owen's World

问题

服务端证书使用的是 Let's Encrypt

问题的起因是IOS系统中使用微信小程序,请求服务器接口,首次请求需要等待3 ~ 10秒。导致小程序初次打开白屏。

在反复验证后,排除了Nginx、Tomcat、Java等问题。最终锁定了问题出在HTTPS证书上。

最终参考了V站大佬的帖子才恍然大悟。 v2ex.com/t/665734

在某些系统以及某些特定的浏览器下,会要求在线校验证书的有效性,称为 在线证书状态协议 (Online Certificate Status Protocol) 简称 OCSP ,测试后发现比较新的Chrome内核Firefox内核 不会 进行校验,而苹果系统下的Safari 校验,IE 未知 ,在IOS系统的微信小程序 校验,Android系统的微信小程序则 不会 进行校验

补充一下:校验地址如果访问不通,会一直等到访问超时,所以会peding 3 ~ 10秒,超时以后会默认为安全,所以不会出现证书不安全的提示。本次访问的后续请求依然可以正常执行,只会表现为首次请求慢。

测试

经测试,Let's Encrypt 的证书的OCSP地址是 ocsp.int-x3.letsencrypt.org 这个地址在国内大部分地区都无法请求成功,俗称被墙

测试地址 ping.chinaz.com/ocsp.int-x3…

测试结果

上述结果中的绿色部分也只是极个别情况,该地区的99%的运营商其实也是红色超时状态,白色是仍然在 pending 中,我懒得继续等了

解决

方案1 换证书 (推荐) 目前除了 Let's Encrypt 以外,就只剩下 亚洲诚信 可以申请到免费的HTTPS SSL证书了,不过 Let's Encrypt 是支持多域名、泛域名的。而 亚洲诚信 免费证书只能申请单域名。

到例如腾讯云、阿里云、又拍云的管理后台,搜索SSL证书,申请即可,一般当天可以获得一张一年有效期的单域名证书,支持下载证书文件。其中主域名 abc.comwww.abc.com 是可以共用一张证书的,按 abc.com 申请即可。其他二级域名例如 music.abc.com 需要多次申请

方案2 OCSP Stapling 这是一个曲线救国的方案,也就是在Nginx配置OCSP的校验地址,到你自己的服务器或CDN,来避免访问不通原地址。

这个方案我没有具体实施,所以建议参考这几篇文章,说的比较详细了

CDN方案 www.alibabacloud.com/help/zh/doc…

Nginx方案 www.jianshu.com/p/540124f37…

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年10月21日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题
  • 测试
  • 解决
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档