+ private void setSslContextFromEnvironment(HttpClientBuilder httpClientBuilder) {
+ final String caCertPath = System.getenv("DCAE_CA_CERTPATH");
+ if (!StringUtils.hasText(caCertPath)) {
+ return;
+ }
+ final SSLContextBuilder sslContextBuilder = new SSLContextBuilder();
+ final String truststoreFilename = "trust.jks";
+ final String truststorePassFilename = "trust.pass";
+ final String certDirPath = caCertPath.substring(0, caCertPath.lastIndexOf("/"));
+ final File truststoreFile = new File(certDirPath, truststoreFilename);
+ final File truststorePassFile = new File(certDirPath, truststorePassFilename);
+ final Password password = Passwords.fromFile(truststorePassFile);
+ password.use(chars -> {
+ try {
+ sslContextBuilder.loadTrustMaterial(truststoreFile, chars);
+ httpClientBuilder.setSSLContext(sslContextBuilder.build());
+ } catch (NoSuchAlgorithmException | KeyStoreException | CertificateException | IOException |
+ KeyManagementException e) {
+ logger.warn("Could not load trusted certificates from environment");
+ }
+ return null;
+ });
+ }
+