728x90
반응형
centos에서 설치된 자바 버전은 1.8.x 오래되었다 보니. 문제가 생기는게 하나둘씩 ㅜ.ㅜ
방법을 찾아봐야지..
rest로 내 서버에 ssl을 호출하는데 왜 이런 오류가 ㅜㅜ
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
이 오류는 Java의 SSL 인증 과정에서 신뢰할 수 없는 인증서 또는 유효하지 않은 인증 경로 때문에 발생합니다. 해결 방법을 단계별로 설명해 드리겠습니다.
728x90
반응형
1. 인증서 확인을 해야 함.
openssl s_client -connect <check domain>:443 -showcerts
2. 인증서 다운로드 및 신뢰 저장소 추가
2-1) 인증서 다운로드
echo -n | openssl s_client -connect <check domain>:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > <check_domain>-cert.crt
2-2)JAVA 신뢰 저장소(TrustStore) 추가
keytool -import -trustcacerts -keystore $JAVA_HOME/lib/security/cacerts -storepass changeit -noprompt -alias domain-cert -file domain-cert.crt
3. 자바 rest 호출 부분 수정
import javax.net.ssl.*;
import java.security.cert.X509Certificate;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
public class RestTemplateConfig {
public static RestTemplate createUnsecureRestTemplate() throws Exception {
TrustManager[] trustAllCertificates = new TrustManager[]{
new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() { return null; }
public void checkClientTrusted(X509Certificate[] certs, String authType) { }
public void checkServerTrusted(X509Certificate[] certs, String authType) { }
}
};
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, trustAllCertificates, new java.security.SecureRandom());
CloseableHttpClient httpClient = HttpClients.custom()
.setSSLContext(sslContext)
.setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE)
.build();
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(httpClient);
return new RestTemplate(factory);
}
}
4. 이후 호출을 하니 문제 없이 해결 ㅜ.ㅜ
하..
삽질의 끝은 아직도 ㅜ.ㅜ
버전 업데이트를 하기에는.. 서버가 불안하니 답답하네 ㅎㅎ
728x90
반응형
'Dev > JAVA' 카테고리의 다른 글
공공데이터 API 요청시 SERVICE ERROR (0) | 2023.12.27 |
---|---|
[JAVA] URL 파라메터 분리(Feat.get) (0) | 2021.02.05 |
java-jython 오류 - No module named site (2) | 2020.08.26 |
JAVA 접근 제한자 (0) | 2020.08.02 |
JAVA - 키보드 입력 (0) | 2020.07.26 |