occidere / DailyOMG

DailyOMG

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Let's Encrypt가 Java의 기본 인증서 목록에 포함되지 않는 문제

occidere opened this issue · comments

Let's Encrypt가 Java의 기본 인증서 목록에 포함되지 않는 문제

상황

Let's Encrypt의 Https 인증서를 등록하였으나, javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed 가 계속 발생

원인

  • 무료 SSL 인증서를 발급해 주는 Let's encrypt 의 CA 인증서는 Java VM 에 포함되어 있지 않으므로 Let's encrypt 에서 발급 받은 SSL 인증서를 Java 에서사용할 경우에 이런 에러가 발생한다 (출처)

해결

  • 아래 코드를 서버에서 입력
$ keytool -trustcacerts \
    -keystore $JAVA_HOME/jre/lib/security/cacerts \
    -storepass changeit \
    -noprompt \
    -importcert \
    -file /etc/letsencrypt/live/hostname.com/chain.pem
  • 단, 이 방식은 JDK가 변경될 때 마다 적용해줘야 된다.

참고