收藏
回答

安卓fail ssl hand shake error 错误

框架类型 问题类型 操作系统 操作系统版本 手机型号 微信版本
小程序 Bug Android 5.1.1 vivo X7 P 6.6.7

- 当前 Bug 的表现(可附上截图)



- 预期表现

IOS系统下正常,没有复现此问题。安卓机时不时的会复现,但不是每次,因为还是会有几率正常,不出现fail ssl hand shake error错误。而且如图,奇怪的是,截图中红色标记部分,最后一个是出现问题请求之后的,同样的https域名地址请求,前两个出现问题,最后一个反而不出问题,能正确读取到数据。照道理如果是证书问题,所有的请求都会出现啊。此页面同时还有wss请求,域名与https一样,没有出现,链接正常









- 复现路径

pages/home/index/index


- 提供一个最简复现 Demo



此二维码扫描进去后,点击热销车型中的“AMG GT”车型进去后,点击预约试驾按钮

最后一次编辑于  2018-10-19
回答关注问题邀请回答
收藏

10 个回答

  • 叶轩
    叶轩
    置顶回答2019-01-10

    如果是线上正常用户(非抓包)在微信Android 7.0版本请求出现ssl handshake error,有一部分原因是此前一个客户端bug,目前已经patch全量修复。如果不确认是否因为patch没有覆盖导致,请进入“我”-设置-关于微信,双击微信logo,看最后一行是否以38结尾即可;

    如果使用fiddler等抓包工具抓包,发现ssl握手失败的情况,则是因为此版本客户端升级了Android target sdk level 至26,Google安全策略收紧,正常情况下是无法使用user证书链接https的。如果有需要抓包的情况,可以暂时使用Android系统版本7.0以下的设备抓包,或启用http抓包。我们正在商讨解决方案,看后续版本如何继续支持。

    2019-01-10
    有用
    回复 3
    • 幸福在家里
      幸福在家里
      2019-01-21

      证书支持情况:




      TLS1.3 是一定要支持吗?还是 支持了 1.2 就可以了,用的Tengine,但是Tengine的稳定版 2.1.2 不支持 1.3,只有开发版 Tengine-2.2.3 才支持TLS1.3

      2019-01-21
      回复
    • 广西索骏科技
      广西索骏科技
      2019-03-04

      看最后一行是否以38结尾即可”?

      我下边这个手机还是存在bug的,是哪个位数不对?


      2019-03-04
      回复
    • 阿伦尼乌斯
      阿伦尼乌斯
      2019-10-24
      叶轩大神来搞小程序了啊
      2019-10-24
      回复
  • ShinBlueCat
    ShinBlueCat
    2018-10-24

    有可能是证书信任链的问题? 可能会导致偶现

    https://developers.weixin.qq.com/miniprogram/dev/framework/ability/network.html

    可以看一下证书的要求 ,页面上可以找到证书验证工具


    2018-10-24
    有用
    回复
  • 幸福在家里
    幸福在家里
    2019-01-22

    4G环境下出现安卓fail ssl hand shake error 错误,而 Wi-Fi下是正常的。问题依然存在,且影响面积较大,对用户产生了不小的困扰,证书协议支持情况如下:




    如果是证书问题,希望能说明是什么问题。如果是使用姿势出现变动,烦请说明下。如果是基础库等官方问题,也烦请说明。不甚感激微信开发者BaBa~~~

    2019-01-22
    有用 2
    回复 2
  • Nf
    Nf
    2018-12-31

    我也碰到这个问题了,使用nagix代理时才出现,如果直接用IIS证书则无此问题,使用HTML5源生video插件在微信浏览器里打开也没问题,只有小程序的video才出现这个问题,已经没办法了

    2018-12-31
    有用
    回复 3
    • Nf
      Nf
      2018-12-31

      机型绝对是支持的,公司最新的安卓机都拿来试了,基本都不行,试过偶尔几次可以,但是之后一样的代码也不行了,报错就是这个SSL_do_handshake() failed (SSL: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown:SSL alert number 46) while SSL handshaking, client: XX.XX.XX.XX, server: 0.0.0.0:443

      2018-12-31
      回复
    • Nf
      Nf
      2018-12-31

      我试过使用旧的安卓4.3的机子是100%可以的,很无语

      2018-12-31
      回复
    • Nf
      Nf
      2018-12-31

      问题解决了, ssl_certificate xxx.pem;这个配置必须使用pem证书,不能使用crt

      2018-12-31
      回复
  • 老林与小杰
    老林与小杰
    2018-12-04

    有的安卓手机会自动好,但是遇到了很难受,100个用户里有3、4个会遇到这种问题。

    2018-12-04
    有用
    回复
  • 广西索骏科技
    广西索骏科技
    2018-11-07


    使用nginx,ssl_protocols 协议配置如上

    安卓8.0以下机型,大概率出现跟题主一样的

    fail ssl hand shake error

    问题

    2018-11-07
    有用
    回复
  • 永泉_
    永泉_
    2018-11-05

    遇到同样的问题!!!

    2018-11-05
    有用
    回复
  • 阿树
    阿树
    2018-10-20

    是的,这个问题我偶尔也会遇到

    2018-10-20
    有用
    回复
  • 是小白啊
    是小白啊
    2018-10-19

    ios可以请求,但是安卓不能正常请求的可能原因:

    TLS 必须支持 1.2 及以上版本。部分 Android  机型还未支持 TLS 1.2,请确保 HTTPS 服务器的 TLS 版本支持1.2及以下版本;


    2018-10-19
    有用
    回复 4
    • 2018-10-19

      该怎么看支持不支持?我问题里有相关检测网站结果截图,您看下是否支持?

      2018-10-19
      1
      回复
    • 2018-10-19

      我的手机系统是5.1.1的,照道理支持1.2了

      2018-10-19
      回复
    • 2018-10-20

      补充下,关键请官方仔细看我的问题描述和我的截图,安卓机是偶尔可以全部加加载成功不会提示错误,但至少我的机型大部分使用时会出现问题,概率在90%。然后我的页面请求不止一个,注意!注意!注意!不是所有请求都会出现,而是包含socket和request请求在内,部分请求OK,部分会出现错误(几乎是request请求会出现错误)。而且,每次打开,同一个request接口这次能读到数据,下次就有可能会出现

      fail ssl hand shake error 

      错误!!!!!!!

      明白不?如果是证书问题,会这样吗?如果证书问题或不支持TLS什么版本,应该是每次都会出现,而且每个接口都应该报错!!!!!!!!!!!!对不???????

      2018-10-20
      1
      回复
    • 幸福在家里
      幸福在家里
      2019-01-21



      @那个很帅的小白, 这样的证书是否可行?

      2019-01-21
      回复
  • 2018-10-19

    补充一下,开发工具内都正常,没有出现问题。就安卓手机真机上体现

    2018-10-19
    有用
    回复 1
    • 幸福在家里
      幸福在家里
      2019-01-21

      真机上:Wi-Fi 没有问题,4G有问题。。。。。证书支持 1.1 1.2 不支持 1.3

      2019-01-21
      回复
登录 后发表内容