Java

ElasticSearch 를 사용하기 위해 SSL/TLS인증서 추가방법

chanyoun 2023. 11. 30. 00:41
ssl tls 인증하기

SSL/TLS 인증 추가하기

image-20231130002009365

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 인증서를 복사했다면 해당 인증서를 JAVAkeystore 에 등록해줘야한다.

 

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 를 붙여 명령어를 실행해주자.

cacertsimport 를 하기 위해선 비밀번호가 필요한데 바꾸지 않았다면 changeit 이다.

 

cacerts 파일에 ssl 인증서를 import 했다면, 이젠 intellij 에서 vm 옵션을 통해 아래 명령어를 추가해주면 된다.


2. Intellij 의 VM 옵션 추가하기

-Djavax.net.ssl.trustStore=[cacerts 경로] -Djavax.net.ssl.trustStorePassword=[cacerts 비밀번호]

이제 다시 실행해보면 https 를 사용하는 elasticSearch 로부터 정상적인 응답을 받는것을 확인할수 있다.

image-20231130003108446