Android5.0以下手机通过https请求服务器报SSLException异常的原因及解决方案

问题描述:

    最近突然收到了测试组提的bug,说是部分手机打开APP的时候会报服务器连接异常。然后我就用我的手机试了下,发现没有问题。然后用他们在缺陷描述中写的测试机型和系统版本进行了测试。发现确实会报服务区连接异常。然后通过本地调试,发现网络请求的时候报了如下异常:


该异常为SSL握手失败,但是为什么有的手机可以成功有的手机又失败了呢。然后又试了下其他版本的手机,发现Android5.0以下系统的手机都不通。

问题原因:

首先想到的是后台服务器那边前两天更新了https协议的版本。推测应该是和这个有关。经确认,后台服务器是禁止TLS1.0,TLS1.1和TLS1.2放行。然后查看了一下Google关于SSLEngine的官方文档说明,不同Android版本针对于TLS协议的默认配置图如下:

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
根据提供的引用内容,当遇到"SSLException: Unrecognized SSL message, plaintext connection?"错误时,通常是由于尝试在使用SSL加密的端口上建立非加密的连接导致的。这可能是由于以下几个原因引起的: 1. 服务器端口错误:请确保您正在连接的服务器端口是正确的,并且与您的请求协议(HTTP或HTTPS)相匹配。 2. 代理配置错误:如果您使用代理服务器进行连接,请确保代理服务器的配置正确,并且代理服务器支持SSL连接。 3. SSL证书问题:如果您正在连接的服务器使用自签名的SSL证书或无效的证书,您的客户端可能会拒绝建立连接。您可以尝试忽略证书验证来解决此问题,但这不是一个安全的解决方案。 为了解决这个问题,您可以尝试以下几个步骤: 1. 检查端口和协议:确保您正在连接的服务器端口是正确的,并且与您的请求协议(HTTP或HTTPS)相匹配。 2. 检查代理配置:如果您使用代理服务器进行连接,请确保代理服务器的配置正确,并且代理服务器支持SSL连接。 3. 检查SSL证书:如果您正在连接的服务器使用自签名的SSL证书或无效的证书,您可以尝试忽略证书验证来解决此问题。但请注意,这不是一个安全的解决方案。 4. 更新Java版本:如果您使用的是旧版本的Java,尝试升级到最新版本,以确保您的Java环境支持最新的SSL协议和加密算法。 5. 检查网络连接:确保您的网络连接正常,并且没有任何防火墙或安全软件阻止您的连接。 希望这些步骤能够帮助您解决问题。如果问题仍然存在,请提供更多的详细信息,以便我们能够更好地帮助您。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值