Как использовать Apache HttpClient Mutual SSL с SSL Proxy - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть Apache HttpClient (v4.5.11), который я настроил для взаимного SSL согласно приведенному ниже коду. Это прекрасно работает, однако мне нужно получить доступ к этому соединению через SSL-прокси. Я попытался добавить конфигурацию прокси-сервера в код ниже (прокомментировал), но я не могу заставить его работать. При отправке запроса я всегда получаю ответ:

javax.net.ssl.SSLException: Unsupported or unrecognized SSL message

Как я могу использовать Apache клиент с прокси-сервером SSL?

var keystore = KeyStore.getInstance("JKS");
keystore.load(
    new ByteArrayInputStream(Files.readAllBytes(Paths.get(keystorePath))),
    keystorePassword.toCharArray());
var contextBuilder = SSLContexts.custom();
contextBuilder.loadKeyMaterial(keystore, keystorePassword.toCharArray());
var sslContext = contextBuilder.build();
var socketFactory =
    new SSLConnectionSocketFactory(sslContext, new DefaultHostnameVerifier());
var builder = HttpClientBuilder.create().setSSLSocketFactory(socketFactory);
var poolingHttpClientConnectionManager =
    new PoolingHttpClientConnectionManager(
        RegistryBuilder.<ConnectionSocketFactory>create().
            register("https", socketFactory).
            build());
poolingHttpClientConnectionManager.setMaxTotal(100);
poolingHttpClientConnectionManager.setDefaultMaxPerRoute(100);
builder.setConnectionManager(poolingHttpClientConnectionManager);
//builder.setProxy(new HttpHost("myproxy.com", 443, "https"));
var client = builder.build();
...