1***@qq.com
1***@qq.com
  • 发布:2021-07-12 14:33
  • 更新:2022-01-04 11:40
  • 阅读:1262

【报Bug】升级Hbuildx 到3.1.18.20210609 ,app端https请求失败(已经设置了sslVerify: false)

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows 10 企业版 19042.1052

HBuilderX类型: 正式

HBuilderX版本号: 3.1.18

手机系统: Android

手机系统版本号: Android 7.0

手机厂商: pda设备

手机机型: CRUISE1-HC

页面类型: vue

打包方式: 离线

项目创建方式: HBuilderX

操作步骤:
  1. 升级Hbuildx 到3.1.18.20210609 并更新相应的apk;
  2. 设置了sslVerify: false;
  3. 打包安卓离线apk,下载安装,请求接口报错;

预期结果:

https请求成功

实际结果:

https(已经设置了sslVerify: false)请求失败,报错信息:
请求直接进到Fail方法里报错了,报错内容:request:fail abort statusCode:-1 java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

bug描述:

之前原Hbuildx 版本 2.9.8.20201110,打包成离线apk,https请求正常(sslVerify: false)

  1. 升级Hbuildx 到3.1.18.20210609 并更新相应的apk;
  2. 设置了sslVerify: false;
  3. 打包安卓离线apk,下载安装,请求https报错, http接口正常;
2021-07-12 14:33 负责人:无 分享
已邀请:

最佳回复

DCloud_Android_ST

DCloud_Android_ST

离线打包 不支持sslVerify: false

  • 零九

    那app发起请求的时候,要配置什么吗?

    2022-01-04 11:57

  • DCloud_Android_ST

    回复 零九: 走标准SSL证书验证

    2022-01-04 12:02

DCloud_Android_DQQ

DCloud_Android_DQQ

你的网站TLS证书 没有被你的手持设备信任

  • 1***@qq.com (作者)

    感谢回答~ 但是还有些疑问:

    uni-app中的请求已经设置了sslVerify: false // 是否验证 ssl 证书

    a. 为什么在安卓端,还会去校验TLS证书呢?

    b. 在Hbuildx 版本 2.9.8.20201110中https请求能正常访问,升级到3.1.18.20210609 https访问报错,是Hbuildx的版本问题嘛?

    2021-07-13 09:55

  • DCloud_Android_DQQ

    回复 1***@qq.com: 你提供一下你的网址,我这边具体定位一下。回复你哈

    2021-07-13 11:23

  • 1***@qq.com (作者)

    回复 DCloud_Android_DQQ: 你说的是https接口的地址嘛?公司是内网得vpn。。。 但是这个问题应该好浮现,只是升级了Hbuildx 版本到3.1.18.20210609,打包成离线apk,https请求就报错了

    2021-07-13 13:51

  • baiyun_rain

    回复 1***@qq.com: 请问下你怎么解决的哈???我们也遇到了

    2022-09-21 14:04

DCloud_Android_DQQ

DCloud_Android_DQQ

但是这个问题应该好浮现

这个问题不好复习。手机上没有这个问题。可能与你的定制设备剪裁过 X509证书相关的模块有关。
你需要提供更多的日志或者复现问题的代码。否则我无法定位

  • baiyun_rain

    有其他办法解决吗? 我们也是内网自己搞得证书。https请求不行

    2022-09-21 14:04

DCloud_Android_DQQ

DCloud_Android_DQQ

另外,你一直强调的 在Hbuildx 版本 2.9.8.20201110中https请求能正常访问,升级到3.1.18.20210609 https访问报错,是Hbuildx的版本问题嘛

给你解释一下,之前版本的HX sslVerify:false 的功能是, 完全不走默认的X509证书校验。
这样简单粗暴,但是会有很严重的安全风险。
在3.1.X版本上,修复了这个安全问题。 sslVerify:false的实现修改为,符合X509证书规范的忽略。

这个功能在更新三个月了,没有收到过问题反馈。这个报错应该与你的定制设备有关。

  • 2***@qq.com

    你好,我正在使用 3.2.16.20211122 开发,我设置了 sslVerify:false , 却没有生效。可以帮忙看看吗?


    js 代码:

    uni.request({

    url: 'https://内网地址:9270/api',

    method: 'POST',

    sslVerify: false,

    data: {

    test: '1111'

    },

    success: (res) => {

    console.log([request][res] ${JSON.stringify(res)})

    this.request.status = "success"

    this.request.response = JSON.stringify(res);

    },

    fail: (err) => {

    console.log([request][err] ${JSON.stringify(err)})

    this.request.status = "error"

    this.request.response = JSON.stringify(err);

    }

    })


    但在 WXStreamModule.class 的 fetch 方法的 optionsObj 参数中,sslVerify 仍然为 true

    2021-12-19 09:50

  • DCloud_Android_DQQ

    回复 2***@qq.com: 需要提供一个完整可以复现问题的操作步骤 和demo,. 最好单独开个ask

    2021-12-20 11:02

  • 2***@qq.com

    回复 DCloud_Android_DQQ: 在 https://ask.dcloud.net.cn/question/134210 这个帖子中找到回复了。 据 DCloud_Android_ST 的回复,离线打包不支持忽略证书校验,感谢回答

    2021-12-21 10:47

1***@qq.com

1***@qq.com (作者)

多谢回答,了解了,在3.1.X版本上,https请求,需要配置证书

官网上网络请求的tips得更新一下了~

  • DCloud_Android_DQQ

    问题解决就好。 其实描述没有问题。 一般手机设备配置sll false 也是可以的。

    2021-07-13 17:39

零九

零九

请问最终是怎么解决的?我们也遇到完全一样的问题。

  • baiyun_rain

    请教一下你们解决了吗/

    2022-09-21 14:07

该问题目前已经被锁定, 无法添加新回复