2222import io .grpc .netty .GrpcSslContexts ;
2323import io .grpc .xds .EnvoyServerProtoData .UpstreamTlsContext ;
2424import io .grpc .xds .client .Bootstrapper .CertificateProviderInfo ;
25+ import io .grpc .xds .internal .security .CommonTlsContextUtil ;
2526import io .grpc .xds .internal .security .trust .XdsTrustManagerFactory ;
2627import io .netty .handler .ssl .SslContextBuilder ;
2728import java .io .IOException ;
@@ -60,9 +61,9 @@ final class CertProviderClientSslContextProvider extends CertProviderSslContextP
6061 staticCertValidationContext ,
6162 upstreamTlsContext ,
6263 certificateProviderStore );
63- // Null rootCertInstance implies hasSystemRootCerts because of the check in
64- // CertProviderClientSslContextProviderFactory.
65- if ( rootCertInstance == null && !isMtls ()) {
64+ if ( rootCertInstance == null
65+ && CommonTlsContextUtil . isUsingSystemRootCerts ( tlsContext . getCommonTlsContext ())
66+ && !isMtls ()) {
6667 try {
6768 // Instantiate sslContext so that addCallback will immediately update the callback with
6869 // the SslContext.
@@ -75,27 +76,27 @@ final class CertProviderClientSslContextProvider extends CertProviderSslContextP
7576
7677 @ Override
7778 protected final SslContextBuilder getSslContextBuilder (
78- CertificateValidationContext certificateValidationContextdationContext )
79+ CertificateValidationContext certificateValidationContext )
7980 throws CertificateException , IOException , CertStoreException {
8081 SslContextBuilder sslContextBuilder = GrpcSslContexts .forClient ();
8182 if (rootCertInstance != null ) {
8283 if (savedSpiffeTrustMap != null ) {
8384 sslContextBuilder = sslContextBuilder .trustManager (
8485 new XdsTrustManagerFactory (
8586 savedSpiffeTrustMap ,
86- certificateValidationContextdationContext ));
87+ certificateValidationContext ));
8788 } else {
8889 sslContextBuilder = sslContextBuilder .trustManager (
8990 new XdsTrustManagerFactory (
9091 savedTrustedRoots .toArray (new X509Certificate [0 ]),
91- certificateValidationContextdationContext ));
92+ certificateValidationContext ));
9293 }
9394 } else {
9495 try {
9596 sslContextBuilder = sslContextBuilder .trustManager (
9697 new XdsTrustManagerFactory (
9798 getX509CertificatesFromSystemTrustStore (),
98- certificateValidationContextdationContext ));
99+ certificateValidationContext ));
99100 } catch (KeyStoreException | NoSuchAlgorithmException e ) {
100101 throw new CertStoreException (e );
101102 }
0 commit comments