Создание 2 способов ssl рукопожатия (TLS) с использованием GRPC в Android-клиенте - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть сервер Python, работающий с использованием grpc, сгенерированного из созданного мной файла прото. Сервер использует двухстороннюю аутентификацию ssl, когда я запускаю клиент из файла python и вводим самозаверяющий сертификат сервера, сертификат клиента и ключ клиента, он подключается правильно, однако я пытаюсь добиться этого и в моем приложении для AndroidЯ попытался использовать для этого конструктор sslcontext и переосмыслить 3 элемента, которые я указал выше (2 сертификата и 1 ключ), которые находятся в моем «сыром» каталоге, но, похоже, он их не распознает.

 private static SslContext buildSslContext(String trustFile, String clientCertFile, String clientKeyFile) throws SSLException {
        return GrpcSslContexts.forClient()
                .trustManager(new File(trustFile))
                .keyManager(new File(clientCertFile), new File(clientKeyFile))
                .build();
    }
mChannel = NettyChannelBuilder.forAddress("MyServer", 5051).negotiationType(NegotiationType.TLS).sslContext(buildSslContext("server.pem","client.pem","key.pem")).build();

и я получаю эту ошибку "Причина: java.lang.IllegalArgumentException: файл не содержит действительных сертификатов: server.pem"

...