Programming/Spring
[Spring] SSL 접속시, PKIX path building failed 오류 해결방법
기록하는 백앤드개발자
2024. 8. 12. 10:10
반응형
ㅁ 들어가며
ㅇ Elasticsearch와 연동하는 작업 중에 SSL 인증서 에러가 발생하였다.
ㅇ 이를 분석하고 해결하는 과정을 글로 남긴다.
ㅁ 에러 내용
Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
ㅇ SSL 통신을 위해서는 인증서를 교환해야하지만, 인증서를 찾을 수 없다는 에러 메시지이다.
ㅇ [Elasticsearch] Elasticsearch + Kibana 설치하기 with Docker에서 curl로 통신 테스트한 내용이다.
$ curl --cacert http_ca.crt -u elastic:$ELASTIC_PASSWORD https://localhost:9200
ㅇ 통신 테스트 성공 시 crt 인증서로 https 통신을 하였다.
ㅇ 해결책은 이 인증서를 java에게 인식하면 된다.
ㅁ 해결방법
Java keyStore의 위치 확인
# cacerts 저장소 위치 파악
$ file {java_home}/lib/security/cacerts
{java_home}/lib/security/cacerts: Java KeyStore
ㅇ Java keyStore의 위치를 파악한다.
ㅇ 나의 경우 {JAVA_HOME}/lib/security/cacerts에 위치하였다.
인증서 가져오기
# http_ca.crt 복사
$ docker cp es01:/usr/share/elasticsearch/config/certs/http_ca.crt .
keytool명령어로 인증서 추가
$ keytool -import -alias elasticsearch -keystore \
/Users/seodong-eok/Library/Java/JavaVirtualMachines/jbr-17.0.9/Contents/Home/lib/security/cacerts -file http_ca.crt -storepass changeit
Owner: CN=Elasticsearch security auto-configuration HTTP CA
Issuer: CN=Elasticsearch security auto-configuration HTTP CA
Serial number: 1265a50eea06ec0c1f42cb9b53e166a71ed16b5d
Valid from: Thu Aug 01 15:31:40 KST 2024 until: Sun Aug 01 15:31:40 KST 2027
Certificate fingerprints:
SHA1: 7B:BA:B0:70:9A:A1:24:43:26:96:6F:6B:5D:B8:32:FB:96:2F:D7:77
SHA256: F1:8D:15:A7:BA:6F:3E:F2:19:14:EC:01:BB:74:69:4B:B3:6B:83:BE:0D:04:2E:4F:8B:34:C1:B9:A8:86:15:72
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 4096-bit RSA key
Version: 3
~~~~~~~~~~~~~~~~~
Trust this certificate? [no]: yes
Certificate was added to keystore
ㅁ 함께 보면 좋은 사이트
ㅇ javax.net.ssl.SSLHandshakeException
ㅇ Java 기반에서 SSL 접속시, PKIX path building failed 오류
ㅇ PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException
반응형