Залп с OkHttp не использует перезаписанную версию TLS, а принимает версию TLS системы по умолчанию

Я пытался использовать OkHttp с Volley. Я пытался использовать метод OkHttpClient.sslSocketFactory(SSLSocketFactory sslSocketFactory), чтобы перезаписать версию TLS, но это, по-видимому, не рекомендуется. Я использовал альтернативный метод sslsocketfactory (метод ниже), но он не работает для меня.

OkHttpClient.sslSocketFactory (SSLSocketFactory sslSocketFactory, X509TrustManager trustManager) Я изменил версию TLS на 1.2, а для trustManager я использовал системный стандарт по умолчанию trustManager. Но версия TLS, отправляемая во время вызова API, является версией устройства, а не версией, которую я перезаписал.

Мой метод sslSocketFactory:

SSLContext context = SSLContext.getInstance ("TLS");

context.init (null, null, null);

sslSocketFactory = context.getSocketFactory ();

Также версия TLS я включил.

((SSLSocket) сокет).setEnabledProtocols(new String[] {"TLSv1.2"});

Мой метод trustManager:

общедоступный статический X509TrustManager getSystemDefaultTrustManager ()

{

пытаться {

TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance (

TrustManagerFactory.getDefaultAlgorithm ());

trustManagerFactory.init ((KeyStore) null);

TrustManager [] trustManagers = trustManagerFactory.getTrustManagers ();

if (trustManagers.length! = 1 ||! (trustManagers [0] instanceof X509TrustManager)) {

бросить новое IllegalStateException("Неожиданные доверительные управляющие по умолчанию:" + Arrays.toString (trustManagers));

}

return (X509TrustManager) trustManagers [0];

catch (GeneralSecurityException e)

{

бросить новый AssertionError(); // Система не имеет TLS. Просто сдавайся.

}

}

Я также использовал вышеупомянутый trust manager для установки в sslSocketFactory, но, похоже, ничего не работает.

SSLContext context = SSLContext.getInstance ("TLS");

context.init (null, getSystemDefaultTrustManager (), null);

sslSocketFactory = context.getSocketFactory ();

Любая помощь будет высоко ценится, TIA.

0 ответов

Другие вопросы по тегам