Ubuntu 17.10 Java 8-Zertifikatfehler

10

Ich habe eine Neuinstallation von Ubuntu 17.10, auf der ich das Paket oracle-java8-installer (von PPA) installiert habe.

Aber wenn ich versuche, ein ionisches Projekt mit "ionic cordova build android" zu kompilieren, wird der folgende Fehler ausgegeben:

    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

Ich bin mit dem Internet verbunden und habe versucht:

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

... und auch npm, ionic, java und gradle neu installieren, alles ohne Erfolg.

Bearbeiten: Ich habe auch ANDROID_HOME und JAVA_HOME in .bashrc exportiert und Android Studio installiert. Ich habe versucht, das Projekt auf einem anderen Computer zu erstellen, und es funktioniert einwandfrei. Ich kann OpenJDK nicht ausprobieren, da es mit Android Studio nicht gut funktioniert.

Leonardo Amorim
quelle

Antworten:

26

Versuchen

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

gefolgt von

sudo apt-get install ca-certificates-java

um kaputte cacerts reparieren zu lassen.
Für mich hat das das Problem behoben.
Viel Glück!

Zod
quelle
Arbeitete auch für mich für openjdk-9! Gibt es eine Erklärung, warum dies funktioniert, wenn --reinstalldas Postinstall-Skript nicht manuell ausgeführt wurde? Ich bin sehr interessiert für zukünftige Referenz. Vielen Dank!
Andy
1
OH MEIN GOTT. Ich habe seit Wochen nach dieser Antwort gesucht. Jede andere Antwort auf diese Frage, die ich gefunden habe, hat nichts gebracht - absolut nichts. Das hat perfekt funktioniert. Mit diesen Zertifikaten unter Ubuntu 17.10 scheint etwas ziemlich kaputt zu sein.
Dan
Jenkins am 17.10 wurde ebenfalls behoben. Danke (und positiv bewertet)
Forbesmyester
Vielen Dank für mich mit gradle (4.5.1) und open-jdk-9. Funktionierte allerdings nicht mit dem oracle-jdk-9.
Pabi
Lösung für Ubuntu 18.04. Ich habe openjdk Version 11 installiert. Aufgrund von Android musste ich zusätzlich openjdk 8 installieren. Aus unbekannten Gründen funktioniert die von openjdk 11 installierte cacerts-Datei nicht mit openjdk 8. Ich musste beide jdks deinstallieren und nur Version 8 installieren und dann die cacerts neu generieren Datei.
Greg Dan