首先引入微信小程序官方关于HTTPS网络请求问题的相关说明
小程序必须使用 HTTPS/WSS 发起网络请求。请求时系统会对服务器域名使用的 HTTPS 证书进行校验,如果校验失败,则请求不能成功发起。由于系统限制,不同平台对于证书要求的严格程度不同。为了保证小程序的兼容性,建议开发者按照最高标准进行证书配置,并使用相关工具检查现有证书是否符合要求。
如果苹果机型和本地微信开发工具请求都相对正常,唯独安卓部分机型频繁出现请求超时问题,那么可能就是服务器域名证书的信任链不完整或者缺失中间证书引发的,请对照下述流程检查或使用SSL证书在线检测工具。
微信小程序对证书要求如下:
- HTTPS 证书必须有效;
○ 证书必须被系统信任,即根证书被已系统内置
○ 部署 SSL 证书的网站域名必须与证书颁发的域名一致
○ 证书必须在有效期内
○ 证书的信任链必需完整(需要服务器配置) - iOS 不支持自签名证书;
- iOS 下证书必须满足苹果 [App Transport Security (ATS)]的要求;
- TLS 必须支持 1.2 及以上版本。部分旧 Android 机型还未支持 TLS 1.2,请确保 HTTPS 服务器的 TLS 版本支持 1.2 及以下版本;
- 部分 CA 可能不被操作系统信任,请开发者在选择证书时注意小程序和各系统的相关通告。
为什么只有安卓系统会出现这个问题?
原因:在部分安卓系统下证书不可信从而导致无法请求到数据。在证书文件的详细信息-授权信息访问一栏的 Alternative Name 中指定了中间证书的获取 URL 地址。IOS、MAC、Windows、都支持这种方式获取中间证书,唯独部分 Android 系统不支持,所以就无法建立可信连接。所以在切换小程序网络请求域名时请注意检查 SSL 证书是否配置正确。
网友评论