HTTPS SSL/TLS问题及解决方法汇总

编程入门 行业动态 更新时间:2024-10-14 14:20:35

    之前处理过很多ThreadX平台及安卓平台上的SSL问题。

    SSL问题几乎都和握手失败有关,大致分为四种:

1.客户端没有与服务器相匹配的加密套件,以及SSL版本不匹配。

2.SSL证书错误。

3.网络链路问题。

4.其他问题。

    这时使用wireshark抓取网络报文就显得很重要了,下面列出的是使用PC模拟以上问题情况的报文:

正常报文:

PC端命令:openssl s_client -connect www.sogou:443

    通过https://myssl/,已经查到118.184.170.59不支持DES-CBC3-SHA (TLS_RSA_WITH_3DES_EDE_CBC_SHA) 加密套件,此网址可以快速知晓服务端支持的各种信息。

    

    

1.客户端没有与服务器相匹配的加密套件,或者SSL版本不匹配。

可以用火狐浏览器SSL版本查看与设置来模拟服务器是否支持某个版本TLS:

https://blog.csdn/weixin_30396699/article/details/98960323

或者用下面类似的openssl命令来模拟SSL连接,wireshark抓取网络报文对比分析。

PC端命令:openssl s_client -cipher DES-CBC3-SHA -connect www.sogou:443

 

    

    上图服务器的fatal警告很明显表示客户端的client hello报文有问题。

根据https://myssl/信息,对应加密套件不匹配。

解决方案:增加加密套件或更换版本。

 

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/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:443 -servername partner-listing.thredup

 PC端模拟SNI不支持导致握手失败命令:openssl s_client -tls1_2 -connect  partner-listing.thredup:443

    同正常访问的client hello报文做对比

正常报文:

SNI不支持:

 

解决方案: 支持SNI。

 

 

更多推荐

HTTPS SSL/TLS问题及解决方法汇总

本文发布于:2023-06-14 09:55:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1463020.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:解决方法   HTTPS   SSL   TLS

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!