Как включить и использовать TLSv1.0 из Android? - PullRequest
0 голосов
/ 31 марта 2020

Я пишу приложение, которое должно выполнять некоторые HTTP-запросы к серверу. Этот сервер, к сожалению, поддерживает только TLSv1.0 или SSLv3.

Я пытался создать пользовательский SSLSocketFactory, как предложено в этом ответе, но кажется, что TLSv1.0 просто не поддерживается платформой, хотя при использовании TLSv1.1 или более поздних причин возникает ошибка рукопожатия.

Но в то же время я могу подключиться к целевому серверу из браузера в эмуляторе, поэтому это должно быть возможно в целом.

        client = OkHttpClient.Builder()
        .sslSocketFactory(TLSSocketFactory(sslContext.socketFactory), trustManager)
        .build()

Где TLSSocketFactory - пользовательский класс только с включенным TLSv1.0. Я получаю сообщение об ошибке «Сбой рукопожатия» или неподдерживаемый протокол.

Возможно ли включить TLSv1.0 и как это сделать?

1 Ответ

1 голос
/ 31 марта 2020

Если это действительно так, вам нужно понизить OkHttp версию до 3.x, которая все еще поддерживает это.

Правильное исправление было бы лучше, обновить доступные шифры на стороне сервера, чтобы заменить TLS 1.0 современными шифрами. Только потому, что это возможно использовать, не означает, что это имеет смысл; TLS 1.0 обеспечивает только мнимую безопасность, что опасно.

...