Поддерживает ли gRPC TLS 1.3 под Android?

#okhttp #grpc-java

#okhttp #grpc-java

Вопрос:

В приложении для Android, использующем последнюю версию io.grpc:grpc-okhttp:1.32.1 , я, похоже, не могу установить соединение TLS 1.3 с сервером. На определение ConnectionSpec.MODERN_TLS ссылаются из okhttp-2.7.4, который не включает TLS 1.3. Я вижу, что okhttp3 имеет желаемое определение ConnectionSpec.MODERN_TLS , но OKHttpChannelBuilder не будет использовать эту ссылку на класс.

Есть ли способ создать gRPC ManagedChannel , поддерживающий TLS 1.3?

Ответ №1:

Если вы не разбираетесь в реализации Google, вы можете использовать gRPC-клиент Wire. Он будет выполнять TLSv1.3 на устройствах, которые его поддерживают. Или используйте его с Conscrypt для TLSv1.3 на любом устройстве.

https://square.github.io/wire/

Комментарии:

1. Я даже не рассматривал различные реализации клиента. Спасибо, что указали мне на работоспособный вариант!

Ответ №2:

Решено> Начиная с версии io.grpc 1.43.2, существует другой метод построения канала с версией TLS и наборами шифров в качестве параметров. Используя это, я смог создать соединение по протоколу TLS 1.3.

((OkHttpChannelBuilder) channelBuilder).tlsConnectionSpec(tlsVersions, cipherSuites);