微信小程序wx.request:fail ssl hand shake error

现象是这样:一开始配置好服务器端https证书后,小程序跟APP都是可以正常访问服务器接口的。运行一段时间后,具体多长时间应该是没规律的。然后小程序端就会出现:wx.request:fail ssl hand shake error。

出现这个问题,第一时间想到的就是证书问题,起初以为证书过期了呢,到证书管理端查看,证书压根没有过期,此时用浏览器访问https的该网站,是可以正常访问的,浏览器端也不会提示任何异常信息,地址栏的证书检测也是正常的。

经过一番网络搜索后,终于找到解决方案,如下:

通过网站(https://www.myssl.cn/tools/check-server-cert.html)检测证书健康性,发现nginx使用pem配置的https证书,缺少个所谓的中间证书,具体这个中间证书是个什么鬼,这里先不做深入研究。下面是中间证书生成方式:

找到之前存档的证书文件夹,里面应该会有个crt结尾的证书文件,然后打开网站:https://www.myssl.cn/tools/downloadchain.html

用文本编辑器打开crt证书文件,复制第一段文本

然后放入如下所示文本框中:

点击下一步,然后“点击下载中间证书文件”即可。到此中间证书文件已成功生成。

把中间证书上传至服务器证书存档文件夹,

然后执行命令:cat 1_www.abc.com_bundle.crt > chain.crt

此时已经把中间证书跟之前的证书合二为一。

下面修改Nginx配置:

此处ssl_certificate的值之前为pem的文件 改为新生成并与之前证书融为一体的新证书chain.crt。

保存,并reload Nginx。回到小程序端,发现错误已经不复存在。

至此。问题完美解决!

猜你喜欢

转载自blog.csdn.net/shengfakun1234/article/details/88227031
今日推荐