Ubuntu에서 OpenJDK 9 이상 버전을 설치하고, TLS 관련 애플리케이션을 실행하면 인증서 오류로 실행이 안되는 경우가 있다.
원인은 cacerts keystore OpenJDK 이상에서 비어 있기 때문이다.

javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
        at java.base/sun.security.ssl.Alerts.getSSLException(Alerts.java:214)
        at java.base/sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1969)
        at java.base/sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1904)
        at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1436)
...

해당 서버에서 아래 명령을 실행해서 인증서 관련 초기화를 한번 수행 해주면 된다.

sudo sh -c "/usr/bin/printf '\xfe\xed\xfe\xed\x00\x00\x00\x02\x00\x00\x00\x00\xe2\x68\x6e\x45\xfb\x43\xdf\xa4\xd9\x92\xdd\x41\xce\xb6\xb2\x1c\x63\x30\xd7\x92' > /etc/ssl/certs/java/cacerts"

sudo /var/lib/dpkg/info/ca-certificates-java.postinst configure

'DevOps , SRE' 카테고리의 다른 글

OpenJDK 인증서 관련 오류 발생시  (0) 2020.03.25
AWX 한방에 설치하기  (0) 2019.05.18
SRE Recruit  (0) 2019.04.29
nGrinder 빨리 설치하기  (0) 2019.04.29
Prometheus vs InfluxDB  (0) 2019.04.21
Git 상황별로 작업 원복 하기  (0) 2019.03.25

+ Recent posts