ssl 연결에 jersey-apache-client를 사용하고 있습니다. 연결을 확인할 때 핸드 셰이크 오류가 발생합니다. 아래 핸드 셰이크 오류가 있습니다. 내가 저지 - 클라이언트 1.13를 사용하고 내가 악수 오류가 발생하지 않는 경우jersey-apache-client-1.18을 사용하는 SSL handshake_failure
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]
코드는 잘 작동합니다. 저지 - client.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.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();
해결책을 찾을 수 없습니다. 두 가지 경우 모두 인증서가 괜찮습니다.
참고 : 프록시없이 저지 아파치 클라이언트를 시도했지만 여전히 오류가 있습니다.
무엇이 잘못되었는지 찾으십니까? 미리 감사드립니다.