проблема рукопожатия ssl между Java-клиентом GRPC и сервером NodeJS

Я использую GRPC (клиент Java) для подключения через SSL к серверу NodeJS. Контекст SSL, который я использую, скопирован ниже. Я попытался запустить ssldump (в ОС Mac El Capitan) для отладки. Я получаю следующее исключение на сервере, когда пытаюсь подключиться и отправить сообщение на сервер:

chttp2_server.c:123] Handshaking failed: {"created":"@1489433622.628015000","description":"Handshake read failed","file":"../src/core/lib/security/transport/security_handshaker.c","file_line":238,"referenced_errors":[{"created":"@1489433622.628009000","description":"Socket closed","fd":24,"file":"../src/core/lib/iomgr/tcp_posix.c","file_line":249,"target_address":"ipv6:[::1]:60820"}]}


        SslContext sslContext = GrpcSslContexts.forClient()
                .startTls(true)
                .sslProvider(defaultSslProvider())
                .trustManager(publicCert)
                .keyManager(clientCert, clientKey)
               // .ciphers(null)  //testing
                .build();

Я просто вижу следующий вывод из ssldump:

780    1880.8428 (0.0405)  C>S  TCP FIN
780    1880.8433 (0.0005)  S>C  TCP FIN
New TCP connection #1020: localhost(61531) <-> localhost(96758)
1.3625 (1.3625)  C>S
---------------------------------------------------------------
1e 0a 16 08 b9 c6 ed bc b9 9e 84 98 e3 01 10 95    ................
b8 b5 a5 8e 8c c3 bb 91 01 10 02 22 02 08 01       ..........."...
---------------------------------------------------------------

New TCP connection #1021: localhost(61532) <-> localhost(90051)

Будем очень признательны за любые мысли о том, как устранить эту проблему в дальнейшем.


person ali haider    schedule 13.03.2017    source источник


Ответы (1)


Я удалил оператор «usePlaintext (false)», который, по-видимому, вызывал проблему.

channelBuilder = NettyChannelBuilder.forAddress(host, port)
                    .overrideAuthority("localhost")
                    .negotiationType(NegotiationType.TLS)
                    **//.usePlaintext(false)**
                    .sslContext(sslContext);
person ali haider    schedule 28.03.2017