Android 使用 HTTPS SSLProtocolException sslv3

之前转载的文章并没有解决问题,继续排查

Android的盒子系统19在https下访问发生了握手失败,失败的log如下:

2019-10-14 10:24:43.344----3809:pool-3-thread-1----b----catch IOException : javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0xaaea2f10: Failure in SSL library, usually a protocol error
error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure (external/openssl/ssl/s23_clnt.c:741 0x6a27d9db:0x00000000)
	at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:448)
	at com.android.okhttp.Connection.upgradeToTls(Connection.java:146)
	at com.android.okhttp.Connection.connect(Connection.java:107)
	at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:294)
	at com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255)
	at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206)
	at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:345)
	at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:89)
	at com.android.okhttp.internal.http.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:161)
	at com.cn21.phoenix.d.b.b(Unknown Source)
	at com.cn21.phoenix.d.a.b(Unknown Source)
	at com.cn21.phoenix.c.d$a.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
	at java.lang.Thread.run(Thread.java:841)
Caused by: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0xaaea2f10: Failure in SSL library, usually a protocol error
error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure (external/openssl/ssl/s23_clnt.c:741 0x6a27d9db:0x00000000)
	at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method)
	at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:405)
	... 14 more

一开始怀疑是服务端没有支持tls1的问题,但是在https的网站检测下:https://www.ssllabs.com/ssltest/analyze.html是有对tls都有支持:

Configuration

Protocols
TLS 1.3	No
TLS 1.2	Yes
TLS 1.1	Yes
TLS 1.0	Yes
SSL 3	No
SSL 2	No
For TLS 1.3 tests, we only support RFC 8446.

再细看下log是ssl v3的错,应该是自动选择ssl 3作为加密协议。

因此可以禁用ssl,强制使用tls解决,强制使用tls如下:

https://cloud.tencent.com/developer/ask/94694 待验证:

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值