[java] HttpClient에서 SSL/TLS 연결을 설정하는 방법은?
  1. TrustManager 구현체 생성: 먼저, SSL/TLS 연결 시 신뢰할 수 있는 인증서를 사용하기 위해 TrustManager 구현체를 생성해야 합니다.
import javax.net.ssl.*;

TrustManager[] trustManagers = new TrustManager[]{
    new X509TrustManager(){
        public void checkClientTrusted(X509Certificate[] chain, String authType) {}
        public void checkServerTrusted(X509Certificate[] chain, String authType) {}
        public X509Certificate[] getAcceptedIssuers() {
            return null;
        }
    }
};

위 코드는 모든 인증서를 신뢰하도록 동작하는 TrustManager를 생성하는 예시입니다. 보안 요구에 따라 적절한 TrustManager를 구현하십시오.

  1. SSLContext 생성 및 초기화: 다음으로, SSLContext를 생성하고 위에서 생성한 TrustManager를 이용하여 초기화해야 합니다.
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, trustManagers, new SecureRandom());

위 코드는 TLS 프로토콜을 사용하는 SSLContext를 생성하고, TrustManager를 이용하여 초기화하는 예시입니다.

  1. HttpClient 생성 및 SSL 설정: 마지막으로, HttpClient를 생성하고 SSLContext를 이용하여 SSL 설정을 적용해야 합니다.
CloseableHttpClient httpClient = HttpClients.custom().setSSLContext(sslContext).build();

위 코드는 생성한 SSLContext를 이용하여 HttpClient를 설정하는 예시입니다.

이제 HttpClient를 이용하여 SSL/TLS 연결을 사용할 수 있게 되었습니다. 필요한 API 호출에 따라 HttpClient를 사용하십시오.

이 예시는 HttpClient 4.5.1 버전을 기준으로 작성되었습니다. 참고로 자바 11부터는 HttpClient가 기본 제공되므로 별도의 의존성을 추가할 필요가 없습니다.


참고자료: