Я пытаюсь заставить старые устройства Android (4.4 и 7.0) подключаться к серверам TLS1.2, но продолжаю получать:
javax.net.ssl.SSLProtocolException:
SSL handshake aborted: ssl=0xb9585240: Failure in SSL library, usually a protocol error
error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version (external/openssl/ssl/s23_clnt.c:741 0x9891f990:0x00000000)
Я внедрил библиотеку netcipher, но я не уверен, что Retrofitфактически использует его:
OkHttpClient.Builder okHttpClientBuilder = new OkHttpClient.Builder()
.addInterceptor(new AuthorizationInterceptor());
// TODO: add Tor support
Intent statusIntent = new Intent();
statusIntent.putExtra(OrbotHelper.EXTRA_STATUS, OrbotHelper.STATUS_OFF);
try {
OkHttpClient client = StrongOkHttpClientBuilder
.forMaxSecurity(context)
.withWeakCiphers()
.applyTo(okHttpClientBuilder, statusIntent)
.build();
retrofit = new retrofit2.Retrofit.Builder()
.client(client)
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.build();
} catch (Exception e) {
e.printStackTrace();
}
Полный исходный код доступен здесь: https://github.com/sschueller/peertube-android/blob/netcipher/app/src/main/java/net/schueller/peertube/network/RetrofitInstance.java
Конфигурация Nginx: https://github.com/Chocobozzz/PeerTube/blob/develop/support/nginx/peertube
Любое предложение о том, что я могу делатьнеправильно или не возможно общаться с сервером TLS 1.2 без служб воспроизведения Android?