Я использую jersey-apache-client для подключения ssl. Я получаю сообщение об ошибке при попытке подтверждения соединения. Ниже приведена ошибка рукопожатия.SSL handshake_failure с использованием jersey-apache-client-1.18
WRITE: TLSv1 Change Cipher Spec, length = 1
Finished
verify_data: { 165, 117, 49, 237, 116, 71, 111, 175, 161, 237, 45, 30 }
WRITE: TLSv1 Handshake, length = 48
READ: TLSv1 Alert, length = 2
RECV TLSv1 ALERT: fatal, handshake_failure
%% Invalidated: [Session-1, TLS_DHE_RSA_WITH_AES_128_CBC_SHA]
код работает отлично, если я использую Джерси-клиент-1,13, и я не получаю ошибку рукопожатие.
SSLContext ctx = SSLContext.getInstance("TLS");
ctx.init(keyManagerFactory.getKeyManagers(), tmf.getTrustManagers(), null);
final ClientConfig config = new DefaultClientConfig();
config.getProperties().put(HTTPSProperties.PROPERTY_HTTPS_PROPERTIES, new HTTPSProperties(null, ctx));
Client create = Client.create(config);
create.resource(targetUrl).post();
Поскольку Джерси-client.1.13 не поддерживает прокси-сервер, я использовал Джерси-апачский-client.1.18. В приведенном ниже коде я использовал DefaultApacheHttpClientConfig, добавил поддержку прокси, создал клиент, используя ApacheHttpClient.
SSLContext ctx = SSLContext.getInstance("TLS");
ctx.init(keyManagerFactory.getKeyManagers(), tmf.getTrustManagers(), null);
final DefaultApacheHttpClientConfig apacheConfig = new DefaultApacheHttpClientConfig();
final Map<String, Object> properties = apacheConfig.getProperties();
properties.put(DefaultApacheHttpClientConfig.PROPERTY_PROXY_URI, "http://" + proxyHost + ":" + proxyPort);
properties.put(HTTPSProperties.PROPERTY_HTTPS_PROPERTIES, new HTTPSProperties(null,ctx));
apacheConfig.getState().setProxyCredentials(AuthScope.ANY_REALM, proxyHost, Integer.parseInt(proxyPort),proxyUser, proxyPassword);
Client create = ApacheHttpClient.create(apacheConfig);
create.resource(targetUrl).post();
Не удалось найти решение. В обоих случаях сертификаты все в порядке.
Примечание: Я также попробовал клиент apache jersey без прокси-сервера, но ошибка существует.
Неужели кто-нибудь находит, что пошло не так? Заранее спасибо.