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' 카테고리의 다른 글

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