Can anyone pls check this and help us?

On Tuesday, 10 June 2025 at 09:58:43 UTC+5:30 ganesh.umapathy 
ganesh.umapathy wrote:

> Can anyone pls check and reply on this?
>
> On Saturday, 7 June 2025 at 19:41:11 UTC+5:30 ganesh.umapathy 
> ganesh.umapathy wrote:
>
>> I am using NettyChannelBuilder in grpc client and NettyServerBuilder in 
>> grpc server.
>>
>> I have created NettyServerBuilder with sslcontext with TLS1.3 and started 
>> the server as below
>> import io.grpc.ServerCredentials;
>> import io.grpc.TlsServerCredentials;
>> import io.grpc.netty.shaded.io.netty.handler.ssl.SslContext;
>> import io.grpc.netty.shaded.io.netty.handler.ssl.SslContextBuilder;
>> import io.grpc.util.AdvancedTlsX509TrustManager;
>> import io.grpc.Server;
>> import io.grpc.netty.shaded.io.grpc.netty.NettyServerBuilder;
>> import io.grpc.netty.shaded.io.netty.handler.ssl.SslContext;
>> import io.grpc.stub.StreamObserver;
>>
>>         private Server myServer;
>>         CertificateData grpcCertificateData = CertificateData.SERVER_CERT;
>>         try {
>>             KeyManager serverKeyManager = 
>> myCertificateHandlerService.getServerKeyManagers(grpcCertificateData.getServiceGroup())[0];
>>             LOG.info("Retrieved key manager: {}", serverKeyManager);
>>
>>             X509TrustManager trustManager =
>>                     (X509TrustManager) 
>> myCertificateHandlerService.getServerTrustManagers(grpcCertificateData.getServiceGroup())[0];
>>             X509Certificate[] acceptedIssuers = 
>> trustManager.getAcceptedIssuers();
>>             LOG.info("Retrieved CA certificates: {}", acceptedIssuers);
>>
>>             SslContextBuilder builder = 
>> SslContextBuilder.forServer(serverKeyManager)
>>                     .trustManager(trustManager)
>>                     .clientAuth(ClientAuth.REQUIRE)
>>                     .ciphers(CIPHER_SUITES_SUPPORTED)
>>                     .protocols(TLS_VERSION_1_3);  // Explicitly set 
>> TLSv1.3
>>                     .sslProvider(SslProvider.JDK);
>>
>>             NettyServerBuilder.forPort(PORT)
>>                         
>> .sslContext(GrpcSslContexts.configure(builder).build())
>>                         .addService(new LoadReportingRpcService());
>> myServer = serverBuilder.directExecutor().build();
>>             myServer.start();
>>
>>         }
>>         catch (Exception e) {
>>             LimitedLogger.logOrSuppressError(LOG, LOG_MESSAGE_DATA, 
>> "Failed to build SSL context {}", e);
>>         }
>>
>>
>>
>>
>>
>> Also I have created NettyChannelBuilder with sslContext with TLS1.3 and 
>> invoked rpc method in grpc server as below
>>  
>>  import io.grpc.LoadBalancerRegistry;
>> import io.grpc.ManagedChannel;
>> import io.grpc.ManagedChannelBuilder;
>> import io.grpc.NameResolverRegistry;
>> import io.grpc.StatusRuntimeException;
>> import io.grpc.internal.DnsNameResolverProvider;
>> import io.grpc.internal.PickFirstLoadBalancerProvider;
>> import io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder;
>> import io.grpc.netty.shaded.io.netty.handler.ssl.SslContext;
>> import io.grpc.stub.StreamObserver;
>>
>>
>>    String serviceGroup = CertificateData.CERT_CLIENT.getServiceGroup();
>>         try
>>         {
>>             TrustManager[] caTrustManagers = 
>> myCertificateHandlerService.getServerTrustManagers(serviceGroup);
>>             KeyManager[] clientKeyManagers = 
>> myCertificateHandlerService.getClientKeyManagers(serviceGroup);
>>             if (caTrustManagers == null || clientKeyManagers == null)
>>             {
>>                 LOG.error("NN Failed to retrieve PKI components. Server 
>> trust manager was {}, client key manager was {}, for service group {}",
>>                         caTrustManagers,
>>                         clientKeyManagers,
>>                         serviceGroup);
>>             }
>>             else
>>             {
>>                 LOG.error("NN Configure TLS1.3 client");
>>                 X509TrustManager caTrustManager = (X509TrustManager) 
>> caTrustManagers[0];
>>                 KeyManager keyManager = clientKeyManagers[0];
>>                 SslContextBuilder sslContextBuilder = 
>> SslContextBuilder.forClient()
>>                         .trustManager(caTrustManager)
>>                         .keyManager(keyManager)
>>                         .protocols(TLS_VERSION_1_3);
>>                         .sslProvider(SslProvider.JDK)
>>                         .ciphers(CIPHER_SUITES_SUPPORTED);
>> ManagedChannelBuilder<?> channelBuilder = 
>> NettyChannelBuilder.forAddress(target, GRPC_PORT);
>>                 channelBuilder.directExecutor();
>>                 LOG.error("NN tls enabled {}", isTlsEnabled());
>>                 if (isTlsEnabled())
>>                 {
>>                    LOG.error("NN tls enabled and start secure grpc 
>> client");
>>                    ((NettyChannelBuilder) 
>> channelBuilder).sslContext(GrpcSslContexts.configure(sslContextBuilder).build())).useTransportSecurity();
>>                 }
>>     foundChannel = channelBuilder.build();
>>                 ReportingServiceGrpc.ReportingServiceStub stub = 
>> ReportingServiceGrpc.newStub(foundChannel);
>> stub.invokeRpcMethod();
>>             }
>>         }
>>         catch (Exception e)
>>         {
>>             LOG.error("Failed to create ssl context for {}", 
>> serviceGroup, e);
>>         }
>>
>>  
>> I
>>
>>
>> I was using below TLS1.3 ciphers in both server and client
>>  private static final Iterable<String> CIPHER_SUITES_SUPPORTED =
>>             Arrays.asList("TLS_AES_256_GCM_SHA384", 
>> "TLS_AES_128_GCM_SHA256",
>>                     "TLS_CHACHA20_POLY1305_SHA256");
>>
>>
>> But observed that TLS1.2 connection is established always from client to 
>> server communication. Here i have configured with TLS1.3 in sslcontext in 
>> both client and server and i am using java 11. It should establish TLS1.3 
>> right?
>>
>> is it a bug in GRPC?   Otherwise please clarify me with the solution with 
>> what am i missing ?
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/grpc-io/ecacc52d-121a-4a48-b6e1-dbec5c1cc79bn%40googlegroups.com.

Reply via email to