uni-app 请求报错 request:fail abort statusCode:-1 此服务器的证书无效。您可能正在连接到一个伪装成“xxx​”的服务器

uni-app 请求报错 request:fail abort statusCode:-1 此服务器的证书无效。您可能正在连接到一个伪装成“xxx​”的服务器

开发环境 版本号 项目创建方式
Windows Windows 10 HBuilderX

操作步骤:

  • 云打包,使用自定义基座

预期结果:

  • 所有接口正常访问

实际结果:

  • 部分接口不能正常访问

bug描述:

云打包后真机运行,相同域名部分接口报错如下:

"errMsg": "request:fail abort statusCode:-1 此服务器的证书无效。您可能正在连接到一个伪装成“xxx”的服务器,这会威胁到您的机密信息的安全。(-1202)"

相同代码发布为微信小程序、android app都没有此问题。 自定义基座和标准基座都尝试过,呈相同问题。 ssl证书使用阿里云提供的免费证书,尝试过更换服务端ssl证书也没作用。


更多关于uni-app 请求报错 request:fail abort statusCode:-1 此服务器的证书无效。您可能正在连接到一个伪装成“xxx​”的服务器的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

换个ip部署一下可以么?

更多关于uni-app 请求报错 request:fail abort statusCode:-1 此服务器的证书无效。您可能正在连接到一个伪装成“xxx​”的服务器的实战教程也可以访问 https://www.itying.com/category-93-b0.html


换过,不行…奇怪的是,相同域名(证书肯定也相同)只有部分接口不行

请提供一个完整的示例,方便排查问题

解决了 http://www.04007.cn/article/1013.html 复制接口路径的时候 ,接口多了一个零宽空白、零宽度空白字符, 手动敲一遍接口路径就可以了

请问解决了吗

遇到同样的问题,求解决方案。ios真机运行就会报此错误,安卓不会。
{ “errMsg”: “request:fail abort statusCode:-1 此服务器的证书无效。您可能正在连接到一个伪装成“124.70.xx.xx”的服务器,这会威胁到您的机密信息的安全。(-1202)” }

在 uni-app 中,当你遇到 request:fail abort statusCode:-1 此服务器的证书无效。您可能正在连接到一个伪装成“xxx”的服务器 的错误时,通常是由于以下原因之一:

1. SSL 证书问题

  • 服务器使用的 SSL 证书可能无效、过期或不被信任。
  • 证书可能不匹配请求的域名。

2. 自签名证书

  • 如果你使用的是自签名证书,浏览器或 uni-app 的网络请求库可能不信任该证书。

3. 代理或中间人攻击

  • 如果你使用了代理工具(如 Charles、Fiddler),可能会拦截 HTTPS 请求并导致证书错误。

解决方案

1. 检查服务器证书

  • 确保服务器使用的是有效的、受信任的 SSL 证书。
  • 检查证书是否过期,是否与域名匹配。

2. 信任自签名证书

  • 如果你使用的是自签名证书,可以在开发环境中手动信任该证书。
  • 在 iOS 设备上,你可以通过 Safari 访问服务器并手动信任证书。
  • 在 Android 设备上,你可以将证书安装到设备的受信任证书存储中。

3. 禁用 SSL 验证(仅限开发环境)

  • 在开发环境中,你可以暂时禁用 SSL 验证,但不推荐在生产环境中使用。

  • 在 uni-app 中,你可以通过修改 uni.request 的配置来禁用 SSL 验证:

    uni.request({
      url: 'https://your-server.com/api',
      sslVerify: false, // 禁用 SSL 验证
      success: (res) => {
        console.log(res.data);
      },
      fail: (err) => {
        console.error(err);
      }
    });
    

4. 检查代理设置

  • 如果你使用了代理工具,确保代理工具的 SSL 证书已正确安装并信任。
  • 你可以尝试关闭代理工具,看看问题是否仍然存在。

5. 使用 HTTP 协议(仅限开发环境)

  • 如果服务器支持 HTTP 协议,你可以在开发环境中暂时使用 HTTP 协议进行测试,但不推荐在生产环境中使用。

    uni.request({
      url: 'http://your-server.com/api',
      success: (res) => {
        console.log(res.data);
      },
      fail: (err) => {
        console.error(err);
      }
    });
回到顶部