标签:
记录这个问题的定位过程和问题定位的方法
项目改为使用 https 协议,访问时发现返回错误代码:
域名:https://sandbox.api.xxx.com
错误:SSL handshake aborted: ssl=0x5ef8e720: I/O error during system call, Connection reset by peer
错误描述:https 在使用 ssl 时候 handshake aborted(握手失败),导致tcp连接被reset了。那么发生这个原因有哪些呢?
stackoverflow.com 上的原因解释:点击链接 stackoverflow
如: Android 系统版本不一样对使用SSL 时候支持使用的协议版本(TLS1.1 TLS1.2等)是不一样的
点击查看SSLSocket 说明
Protocol | Supported (API Levels) | Enabled by default (API Levels) |
---|---|---|
SSLv3 | 1+ | 1+ |
TLSv1 | 1+ | 1+ |
TLSv1.1 | 16+ | 20+ |
TLSv1.2 | 16+ | 20+ |
Protocol | Supported (API Levels) | Enabled by default (API Levels) |
---|---|---|
SSLv3 | 1+ | 1–22 |
TLSv1 | 1+ | 1+ |
TLSv1.1 | 16+ | 16+ |
TLSv1.2 | 16+ | 16+ |
* 端口问题?
通过抓包协助服务端分析最后发现是服务端 Nagix
命令备忘:
/data/local/tcpdump -p -vv -s 0 -w /sdcard/ThinkDrive.pcap
pull ThinkDrive.pcap 文件到电脑使用 Wireshark 分析,(我这个问题分析发现,户端发送 Client Hello 服务端没有返回 Clinet Hello 和 public key 所以是服务端处理有问题
Unable to chmod ***: Read-only file system
问题的解决方法
注意:
hosts文件格式的问题 ,如果编码格式不对可能导致hosts失效,推荐在Android 上直接用 echo "ip domain" >> /system/ects/hosts
的方式。
LAST: 发现是运维配置nginx 中在协商SSL对称加密算法时出了问题。
Android关于 https SSL handshake aborted 问题查找
标签:
原文地址:http://blog.csdn.net/start0609/article/details/51332191