小程序真机调试请求服务器后台报错request:fail -2:net::ERR_FAILED怎么解?

微信小程序开发工具可以正常请求数据,浏览器https也可以正常访问,有些安卓真机调试请求服务器后台报错request:fail -2:net::ERR_FAILED,勾选或者不勾选合法域名校验都一样。

web服务器环境是:windows+宝塔面板(Nginx+Let’s Encrypt)。

Linux环境下的解决办法大同小异。

一、找出问题

使用SSL服务器证书安装检查器 https://www.myssl.cn/tools/check-server-cert.html 得知错误: 服务器缺少中间证书。

查验 Let’s Encrypt 生成的证书fullchain.pem 默认是两段,如下:

-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----


-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

二、解决问题

通过Nginx配置文件得知ssl证书存放目录为(xxx):

C:/BtSoft/panel/vhost/ssl/xxx

继续找到下面这个目录 :

C:/BtSoft/panel/vhost/letsencrypt/xxx

里面有“cert.csr、fullchain.pem、fullchain.pfx、privkey.pem、root_cert.csr、说明.txt”这几个文件。其中 说明.txt 告诉了我们:

文件说明:
privkey.pem     证书私钥
fullchain.pem   包含证书链的PEM格式证书(nginx/apache)
root_cert.csr   根证书
cert.csr        域名证书
fullchain.pfx   用于IIS的证书格式

如何在宝塔面板使用:
privkey.pem         粘贴到密钥输入框
fullchain.pem       粘贴到证书输入框

这里的PEM格式证书fullchain.pem = 域名证书cert.csr + 根证书 root_cert.csr

将 cert.csr(有的环境下是cert.pem) 内容复制到这个地址解析:https://www.myssl.cn/tools/downloadchain.html

解析成功可以获得 中间证书文件 ,点击复制到剪贴板,下面的 根证书文件 不用管它。

将内容粘贴到 fullchain.pem 的 两段内容的中间 ,保存即可。

-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...这就是中间证书...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

已发布

分类

来自

标签:

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注