美文网首页
javax.net.ssl.SSLHandshakeExcept

javax.net.ssl.SSLHandshakeExcept

作者: thomasyoungs | 来源:发表于2020-06-09 18:42 被阅读0次

    背景

    项目问题报错如下图,用exoplayer播放网络视频发现了如下图问题,于是开始翻资料查找,发现是个通用问题,在Android 4.4的机器上https网络请求失败,但是测试时用Android5.0以上的手机没有发现这个问题。

    问题原因:

    https单向认证问题

    android 4.4没有启用TLSv1.1 和 TLSv1.2 传输层安全协议

    https://developer.android.com/reference/javax/net/ssl/SSLSocket

    解决方案:

    Application  onCreate方法中添加一下代码,

    try {

    // 解决android 4.4没有启用TLSv1.1 和 TLSv1.2 传输层安全协议

        ProviderInstaller.installIfNeeded(getApplicationContext());

    SSLContext sslContext;

    sslContext = SSLContext.getInstance("TLSv1.2");

    sslContext.init(null,null,null);

    sslContext.createSSLEngine();

    }catch (GooglePlayServicesRepairableException | GooglePlayServicesNotAvailableException

    | NoSuchAlgorithmException | KeyManagementException e) {

    e.printStackTrace();

    }

    参考:

    android - Javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL handshake aborted: Failure in SSL library, usually a protocol error - Stack Overflow

    相关文章

      网友评论

          本文标题:javax.net.ssl.SSLHandshakeExcept

          本文链接:https://www.haomeiwen.com/subject/ofyetktx.html