우분투 17.10 Java 8 인증서 오류


10

oracle-java8-installer (PPA에서) 패키지를 설치 한 Ubuntu 17.10을 새로 설치했습니다.

그러나 "ionic cordova build android"를 사용하여 이온 프로젝트를 컴파일하려고하면이 오류가 발생합니다.

    Exception in thread "main" 
    javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
        at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
        at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1959)
        at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1916)
        at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1899)
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1420)
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1397)
        at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1564)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:263)
        at org.gradle.wrapper.Download.downloadInternal(Download.java:60)
        at org.gradle.wrapper.Download.download(Download.java:45)
        at org.gradle.wrapper.Install$1.call(Install.java:62)
        at org.gradle.wrapper.Install$1.call(Install.java:48)
        at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:69)
        at org.gradle.wrapper.Install.createDist(Install.java:48)
        at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:107)
        at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)
    Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
        at sun.security.validator.PKIXValidator.<init>(PKIXValidator.java:91)
        at sun.security.validator.Validator.getInstance(Validator.java:179)
        at sun.security.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.java:312)
        at sun.security.ssl.X509TrustManagerImpl.checkTrustedInit(X509TrustManagerImpl.java:171)
        at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:184)
        at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124)
        at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1496)
        at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216)
        at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1026)
        at sun.security.ssl.Handshaker.process_record(Handshaker.java:961)
        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1072)
        at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1385)
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413)
        ... 14 more
    Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
        at java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:200)
        at java.security.cert.PKIXParameters.<init>(PKIXParameters.java:120)
        at java.security.cert.PKIXBuilderParameters.<init>
    (PKIXBuilderParameters.java:104)
        at sun.security.validator.PKIXValidator.<init>(PKIXValidator.java:89)
        ... 26 more

인터넷에 연결되어 있고 다음을 시도했습니다.

$ sudo update-ca-certificates -f
$ sudo apt install --reinstall ca-certificates-java

... 또한 npm, ionic, java 및 gradle을 모두 성공적으로 다시 설치하십시오.

편집 : ANDROID_HOME 및 JAVA_HOME도 .bashrc로 내보내고 Android Studio가 설치되어 있습니다. 다른 컴퓨터에서 프로젝트를 빌드하려고 시도했지만 정상적으로 작동합니다. OpenJDK는 Android Studio에서 잘 작동하지 않으므로 사용할 수 없습니다.

답변:


26

시험

sudo dpkg --purge --force-depends ca-certificates-java

뒤에

sudo apt-get install ca-certificates-java

깨진 cacerts를 고치기 위해.
나를 위해이 문제를 해결했습니다.
행운을 빕니다!


openjdk-9에서도 저를 위해 일했습니다! --reinstall설치 후 스크립트를 수동으로 실행할 때 이것이 왜 작동하는지에 대한 설명 이 없었습니까? 나는 나중에 참조하기 위해 매우 관심이 있습니다. 감사!
Andy

1
세상에 나는 몇 주 동안이 답변을 찾고있었습니다. 내가 찾은이 질문에 대한 다른 모든 대답은 아무것도하지 않았습니다. 이것은 완벽하게 작동했습니다. 우분투 17.10 에서이 인증서로 인해 다소 깨진 것 같습니다.
Dan

Jenkins도 17.10에서 수정되었습니다. 감사합니다 (
공개됨

gradle (4.5.1) 및 open-jdk-9로 많은 도움을 받았습니다. 그래도 oracle-jdk-9에서는 작동하지 않았습니다.
Pabi

우분투 솔루션 18.04. openjdk 버전 11을 설치했습니다. Android로 인해 openjdk 8을 추가로 설치해야했습니다. 알 수없는 이유로 openjdk 11에 의해 설치된 cacerts 파일이 openjdk 8에서 작동하지 않습니다. jdks를 모두 제거하고 버전 8 만 설치 한 다음 cacerts를 다시 생성해야했습니다. 파일.
Greg Dan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.