request:fail ssl hand shake error
微信开发者工具调试没问题后就将代码发布体验版,自己的苹果机扫码体验正常后,就愉快的将体验二维码发给客户体验。然而没多久就有人反馈页面无法获取数据,一直提示网络奔溃了(这是我藏在wx.request的fail函数中的提示语)。
起初怀疑是客户wifi网络问题,让其切换到4G网络仍然报错。好吧,找同事借了千元安卓机一试,果然没数据。打开了调试窗口,看到报错。
经过调研发现,通过https://www.myssl.cn/tools/check-server-cert.html
查询客户的https的配置存在问题,中间证书缺失。
客户反馈他们的服务器在前一天过期了,已经续费了(汗)。
初步认为因为服务器过期了的缘故导致https配置出现了问题,https证书重新配置后在安卓手机依然不能请求。
经过了几天的折腾:合并证书,重启服务后终于可以了!!!(记得重启服务)
总结
小程序必须使用 HTTPS/WSS 发起网络请求。请求时系统会对服务器域名使用的 HTTPS 证书进行校验,如果校验失败,则请求不能成功发起。由于系统限制,不同平台对于证书要求的严格程度不同。为了保证小程序的兼容性,建议开发者按照最高标准进行证书配置,并使用相关工具检查现有证书是否符合要求。
以下提供了可检查https证书的几个网站
// 检查中间证书
https://www.myssl.cn/tools/check-server-cert.html
// https深度检查
https://www.ssllabs.com/ssltest/analyze.html
https://myssl.com/ssl.html