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 로부터 정상적인 응답을 받는것을 확인할수 있다.
