HTTPS SSL/TLS问题及解决方法汇总
之前处理过很多ThreadX平台及安卓平台上的SSL问题。
SSL问题几乎都和握手失败有关,大致分为四种:
1.客户端没有与服务器相匹配的加密套件,以及SSL版本不匹配。
2.SSL证书错误。
3.网络链路问题。
4.其他问题。
这时使用wireshark抓取网络报文就显得很重要了,下面列出的是使用PC模拟以上问题情况的报文:
正常报文:
PC端命令:openssl s_client -connect www.sogou.com:443
通过https://myssl.com/,已经查到118.184.170.59不支持DES-CBC3-SHA (TLS_RSA_WITH_3DES_EDE_CBC_SHA) 加密套件,此网址可以快速知晓服务端支持的各种信息。
1.客户端没有与服务器相匹配的加密套件,或者SSL版本不匹配。
可以用火狐浏览器SSL版本查看与设置来模拟服务器是否支持某个版本TLS:
https://blog.csdn.net/weixin_30396699/article/details/98960323
或者用下面类似的openssl命令来模拟SSL连接,wireshark抓取网络报文对比分析。
PC端命令:openssl s_client -cipher DES-CBC3-SHA -connect www.sogou.com:443
上图服务器的fatal警告很明显表示客户端的client hello报文有问题。
根据https://myssl.com/信息,对应加密套件不匹配。
解决方案:增加加密套件或更换版本。
2.SSL证书错误。
1)系统时间不对导致握手失败。
解决方案:本地时间同步或者修正时间。
2)服务器证书有问题。
解决方案:客户端可以不验证服务器证书,需要注意安全问题。
3)证书验证算法不支持。
解决方案:扩展相应的如SHA384摘要算法。
3.网络链路问题。
此种问题一般很好查,与服务端有很多重传报文,且最后客户端一直重传,服务端没有回复,回复包括RST、警告报文,超时之后断开连接。
4.其他问题。
前面几种是比较好查的,下面是遇到的比较个例的问题:
1) 服务器仅支持HTTP2.0导致的问题:
大家应该清楚ALPN,其实质上是TLS的扩展,为了协商应用层协议,如HTTP2.0
之前是在android4.4平台手机无法访问亚马逊的语音平台。
首先无法握手成功,经过查看源码,android4.4平台,openssl为1.0.1版本,虽然支持亚马逊的加密套件,但是framework层没有完全扩展加密套件。
故此修改方案无法完全生效:
Android解决okhttpUtils框架无法在4.4.4以下系统访问https协议的问题
https://blog.csdn.net/weixin_30267253/article/details/72417399
需在framework层添加所需加密套件的调用。此处略。
之后握手成功,但每次HTTP请求,服务器会直接RST,对比正常报文发现ALPN字段。
解决方案: 需升级平台OpenSSL 1.0.2版本(支持ALPN)并升级支持HTTP2.0。
2)SNI不支持导致的握手失败。
Server Name Indication是 TLS 的扩展,用来解决一个服务器拥有多个域名的情况。
PC端正常命令:openssl s_client -tls1_2 -connect partner-listing.thredup.com:443 -servername partner-listing.thredup.com
PC端模拟SNI不支持导致握手失败命令:openssl s_client -tls1_2 -connect partner-listing.thredup.com:443
同正常访问的client hello报文做对比
正常报文:
SNI不支持:
解决方案: 支持SNI。
HTTPS SSL/TLS问题及解决方法汇总相关推荐
- 细读HTTPS -- SSL/TLS历史,密码学
文章目录 细读HTTPS -- SSL/TLS历史,密码学 SSL/TLS协议历史 密码学 对称加密 分组密码模式 ECB CBC 非对称加密 消息验证代码 散列函数 数字签名 细读HTTPS – S ...
- ES shard unassigned的解决方法汇总
ES shard unassigned的解决方法汇总 参考文章: (1)ES shard unassigned的解决方法汇总 (2)https://www.cnblogs.com/bonelee/p/ ...
- 共享打印机出错,错误代码0x00000bcb解决方法汇总
共享打印机出错,错误代码0x00000bcb解决方法汇总 参考文章: (1)共享打印机出错,错误代码0x00000bcb解决方法汇总 (2)https://www.cnblogs.com/xknigh ...
- 常见小票打印机打印故障及解决方法汇总视频教程
通过对"常见小票打印机故障及解决方法汇总视频教程"课程学习,达到以下目的:1.可以独立自主安装打印机驱动以及安装打印机硬件设备 2.可以独立自主排除常见打印机故障 学习教程 常见小 ...
- WebService系列之Axis Https(SSL)证书校验错误处理方法
WebService系列之Axis Https(SSL)证书校验错误处理方法 最近在用Axis调用https的接口,抛出异常: javax.net.ssl.SSLHandshakeException: ...
- python-报错和解决方法汇总
python-报错和解决方法汇总 参考文章: (1)python-报错和解决方法汇总 (2)https://www.cnblogs.com/timotong/p/9502483.html (3)htt ...
- 前端必备技能~H5网页无法转发给朋友和分享朋友圈,解决方法汇总
H5转发给朋友和分享朋友圈,在前端经常碰到,2021年9月微信又出新政策,不允许通过微信或者浏览器访问H5页面进行转发给朋友和分享到朋友圈. 下面把最新解决方法汇总一下,分享给大家,欢迎留言讨论. 目 ...
- Eclipse报错解决方法汇总
Eclipse报错一些解决方法汇总(1) 1.An invalid character [44] was present in the Cookie value 说明:ascii为44的字符是&quo ...
- APM(pixhawk)飞控疑难杂症解决方法汇总
摘自:http://www.nufeichuiyun.com/?p=28 APM(pixhawk)飞控疑难杂症解决方法汇总(持续更新) by 怒飞垂云2019年11月4日 APM无法解锁/飞控连不上/ ...
最新文章
- GetLastError()和FormatMessage()
- 直播 | 彩云科技CEO袁行远:NLP与冒险游戏研究一览
- dataTables本地刷新数据解决只能初始化一次问题
- J2EE的13个规范之(二) JDBC 及其使用
- 架构组件:基于Shard-Jdbc分库分表,数据库扩容方案
- CoreData学习-最好的一片文章
- [3]2020-IEEE Access-Batch Active Learning With Two-Stage Sampling 论文笔记
- Parallels Desktop 17 亮点整理,7 大改进与变化
- id导出pdf失败_InDesign 导出印刷用PDF时如何设置?
- CSS Sprite(CSS雪碧图)
- 计算机科学基础word实验一,【实验2】熟悉WORD界面及其基本操作
- 怎么解决ZBrush保存历史记录太多问题
- adsl拨号服务器构建代理池
- SQL Injection Bypassing WAF ——from DVWA ——2012-12-8
- 任务管理器中的PID是什么 怎么查看
- 阿里云数据迁移工具解决方案:腾讯云迁移到阿里云
- 【黄啊码】微信朋友圈的几分钟/几小时前如何实现
- 年底裁员潮,这个冬天你怎样度过?
- 狼奔权限管理系统开源啦
- CVPR2019文章解读 Pyramid Feature Attention Network for Saliency detection 用于显著性检测的金字塔特征注意网络
热门文章
- resultset mysql_MySql——得到ResultSet的记录个数的正确方法
- html中未填写完提示未填写,亚马逊官方试题(开店及运营篇)
- Qt扫盲-QLineEdit理论总结
- xUtils使用详解(一)
- 屏幕后处理故障艺术效果
- R语言ETL工程系列:排序(arrange)
- 苹果开发者账号认证(五步超简单)
- 安卓ListView
- 网页如何与服务器连接到服务器,怎样把网页连接到云服务器上
- ACPI Specification 概述(基于ACPI_Spec_6_4_Jan22)