javax.net.ssl.SSLException:由peer关闭的连接。在android kitkat版本中

时间:2017-07-31 07:58:09

标签: android ssl https android-4.4-kitkat

我正在使用REST api连接ssl https上的服务器 问题是在android kitkat设备上。所有带有kitkat版本或4.x.x的设备都没有与服务器连接

javax.net.ssl.SSLException: Connection closed by peer at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method)

在4.x.x以上的所有设备上正常工作并进行连接

有没有解决方案。我也尝试过OkHttp,这也不适用于我的事业。

1 个答案:

答案 0 :(得分:3)

之前我遇到过类似的问题,我的端点使用TLS 1.2进行加密。如果您的终端使用https,您可以尝试更改为http以进行未加密的api呼叫。如果这是一个选项。

如果您只在Google Play Services的设备上发布应用,则可以使用ProviderInstaller为TLS 1.2提供支持

fun installSecurityProvider() {
    try {
        ProviderInstaller.installIfNeeded(activity)
    } catch (e: GooglePlayServicesRepairableException) {
        handlePlayServicesError(e.connectionStatusCode)
    } catch (e: GooglePlayServicesNotAvailableException) {
        handleCriticalFailure()
    }
}

https://developer.android.com/training/articles/security-gms-provider.html

在okhttp git页面上打开了一个问题,讨论了这个问题。

https://github.com/square/okhttp/issues/3098

如果依赖游戏服务不是一种选择,那么就可以实现自己。

https://github.com/square/okhttp/issues/2372#issuecomment-244807676