Netcipher и Retrofit на Android 4.4 - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь заставить старые устройства 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...