2017-03-13 5 views
0

GRPC (Java 클라이언트)를 사용하여 SSL을 통해 NodeJS 서버에 연결하고 있습니다. 내가 사용중인 SSL 컨텍스트가 아래에 복사됩니다. 디버깅을 돕기 위해 ssldump (Mac El Capitan OS에서)를 실행 해 보았습니다. 하는 방법에 대한GRPC Java 클라이언트와 NodeJS 서버 간의 ssl 핸드 셰이크 문제

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) 

어떤 생각 :

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에서 다음과 같은 출력을 참조하십시오 내가 연결하고 서버에 메시지를 보내려고 할 때 나는 서버에서 다음 예외가 이 문제를 해결하면 더 이상 크게 감사 할 것입니다.

답변

0

문제를 일으킨 것으로 보인 'usePlaintext (false)'문을 제거했습니다.

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