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

本文涉及的产品
.cn 域名,1个 12个月
简介: 微信小程序首次请求慢 Safari浏览器访问慢 pending 10秒 可能是HTTPS证书的锅

问题

服务端证书使用的是 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…

测试结果

01ebd755782e4c909dad0843d3544acf.jpeg

上述结果中的绿色部分也只是极个别情况,该地区的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…

目录
相关文章
|
2月前
|
小程序 开发者
微信小程序之网络数据请求 wx:request的简单使用
这篇文章介绍了微信小程序中如何使用wx.request进行网络数据请求,包括请求的配置、请求的格式以及如何在开发阶段关闭请求的合法检验。
微信小程序之网络数据请求 wx:request的简单使用
|
2月前
|
JSON 前端开发 JavaScript
java中post请求调用下载文件接口浏览器未弹窗而是返回一堆json,为啥
客户端调接口需要返回另存为弹窗,下载文件,但是遇到的问题是接口调用成功且不报错,浏览器F12查看居然返回一堆json,而没有另存为弹窗; > 正确的效果应该是:接口调用成功且浏览器F12不返回任何json,而是弹窗另存为窗口,直接保存文件即可。
142 2
|
1月前
|
小程序 Java
小程序通过get请求提交数据到java后台
小程序通过get请求提交数据到java后台
30 0
|
2月前
|
小程序 PHP
微信小程序给 thinkphp后端发送请求出现错误 Wrong number of segments 问题的解决 【踩坑记录】
本文记录了微信小程序向ThinkPHP后端发送请求时出现"Wrong number of segments"错误的解决方法。问题原因是小程序请求header中的token变量名写错,导致token未正确传递至后端。作者提供了详细的检查步骤和建议,包括验证URL路径、参数规范和路由配置的匹配,以确保请求能正确发送和处理。
|
3月前
|
小程序 安全
Fiddler抓取小程序后端请求导入AppScan扫描快捷方法
【8月更文挑战第26天】这是一种利用 Fiddler 捕获小程序后端请求并导入 AppScan 进行安全扫描的方法。首先安装配置 Fiddler 并设置手机代理,通过 Fiddler 捕获请求;接着导出这些请求为 .saz 文件,并在 AppScan 中导入此文件,配置扫描参数后启动扫描以检测安全漏洞。操作时需确保有合法授权并遵循相关法规。尽管不同版本软件操作细节可能有所不同,但整体流程类似。
138 1
|
3月前
|
Web App开发
Chrome浏览器导出HTTPS证书
Chrome浏览器导出HTTPS证书
54 0
Chrome浏览器导出HTTPS证书
|
4月前
|
缓存 JavaScript 前端开发
浏览器处理预检请求的响应
浏览器处理预检请求的响应
|
4月前
|
安全 网络安全
用IE浏览器访问网站提示证书错误
当你在Internet Explorer中遇到证书错误提示,通常是因网站SSL/TLS证书问题或浏览器安全设置需调整。解决方法包括: 检查时间设置 调整IE设置 安装证书 调整计算机时间
112 3
|
4月前
|
缓存 网络协议 Java
(六)网络编程之化身一个请求感受浏览器输入URL后奇妙的网络之旅!
在浏览器上输入一个URL后发生了什么? 这也是面试中老生常谈的话题,包括网上也有大量关于这块的内容。
134 2
Request请求转发和重定向的资源路径问题,目录到底加不加,取决于浏览器用,还是服务器用,规避项目目录发生修改,导致重定向失败
Request请求转发和重定向的资源路径问题,目录到底加不加,取决于浏览器用,还是服务器用,规避项目目录发生修改,导致重定向失败