Java
ElasticSearch 를 사용하기 위해 SSL/TLS인증서 추가방법
chanyoun
2023. 11. 30. 00:41
SSL/TLS 인증 추가하기
https
를 사용하는 ElasticSearch 를 사용해 데이터를 조회하려 했는데
unable to find valid certification path to requested target
와 같은 오류가 발생했다.
해당오류는 SSL
인증서가 없기 때문에 발생한 오류다. 따라서 SSL
인증서를 추가해야하며 방법은 아래와 같다.
1. cacert 에 import 하기
기본적으로 SSL
인증서를 등록하기 위해선 당연히 SSL
인증서가 필요하다.
docker
를 통해 ElasticSearch
를 실행했다면, 아래와 같은 명령어로 인증서를 복사할수 있다.
docker cp [ElasticContainerID]:/usr/share/elasticsearch/config/certs/http_ca.crt .
위 명령어를 통해 http_ca.crt
인증서를 복사했다면 해당 인증서를 JAVA
의 keystore
에 등록해줘야한다.
keystore
에 등록하는 방법은 cacerts
라는 파일에 import
를 해주면 된다.
[sudo] keytool -import -alias [별칭이름] -keystore [cacerts 경로] -file [http_ca.crt 경로]
나같은 경우에 cacerts
의 경로는 아래와 같았다.
/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home/lib/security/cacerts
참고로 권한이 없다고하면 sudo
를 붙여 명령어를 실행해주자.
cacerts
에 import
를 하기 위해선 비밀번호가 필요한데 바꾸지 않았다면 changeit
이다.
cacerts
파일에 ssl
인증서를 import
했다면, 이젠 intellij 에서 vm
옵션을 통해 아래 명령어를 추가해주면 된다.
2. Intellij 의 VM 옵션 추가하기
-Djavax.net.ssl.trustStore=[cacerts 경로] -Djavax.net.ssl.trustStorePassword=[cacerts 비밀번호]
이제 다시 실행해보면 https
를 사용하는 elasticSearch
로부터 정상적인 응답을 받는것을 확인할수 있다.