首页 > 解决方案 > 如何从 Android 启用和使用 TLSv1.0?

问题描述

我正在编写一个应用程序,它应该对服务器执行一些 HTTP 请求。不幸的是,该服务器仅支持 TLSv1.0 或 SSLv3。

我尝试按照答案中的建议创建自定义 SSLSocketFactory,但似乎平台根本不支持 TLSv1.0,而使用 TLSv1.1 或更高版本会导致握手错误。

但同时,我能够从模拟器中的浏览器连接到目标服务器,所以总体上应该是可以的。

        client = OkHttpClient.Builder()
        .sslSocketFactory(TLSSocketFactory(sslContext.socketFactory), trustManager)
        .build()

其中 TLSSocketFactory 是仅启用了 TLSv1.0 的自定义类。我收到握手失败或协议不受支持的错误消息。

是否可以启用 TLSv1.0 以及如何启用?

标签: androidsslokhttp

解决方案


OkHttp如果确实需要,您需要将版本降级到3.x仍然支持它的版本。

正确的解决方法是更新服务器端的可用密码,以便用现代密码替换 TLS 1.0。仅仅因为可以使用它,并不意味着它会有意义;TLS 1.0 只提供了想象中的安全性,这是一件危险的事情。


推荐阅读