How to override Spring Cloud Eureka default discovery client default ssl context?

前端 未结 2 818
情深已故
情深已故 2020-12-15 14:00

I\'m trying to enable https for spring cloud eureka server. Yaml config:

server:
  port: 8100
ssl:
  clientAuth: want
  protocol: TLS
  key-store: classpath:         


        
2条回答
  •  执念已碎
    2020-12-15 14:54

    I managed to inject ssl-context to the eureka client in Finchley.M9 spring cloud as following:

    @Configuration
    public class SslConfiguration {
    
        private static final Logger logger = LoggerFactory.getLogger(LoggerConfiguration.class);
    
        @Value("${http.client.ssl.trust-store}")
        private File trustStore;
        @Value("${http.client.ssl.trust-store-password}")
        private String trustStorePassword;
    
    
        @Bean
        public DiscoveryClient.DiscoveryClientOptionalArgs getTrustStoredEurekaClient(SSLContext sslContext) {
            DiscoveryClient.DiscoveryClientOptionalArgs args = new DiscoveryClient.DiscoveryClientOptionalArgs();
            args.setSSLContext(sslContext);
            return args;
        }
    
        @Bean
        public SSLContext sslContext() throws Exception {
            logger.info("initialize ssl context bean with keystore {} ", trustStore);
            return new SSLContextBuilder()
                    .loadTrustMaterial(
                            trustStore,
                            trustStorePassword.toCharArray()
                    ).build();
        }
    }
    

提交回复
热议问题