Erreur de certificat Ubuntu 17.10 Java 8

10

J'ai une nouvelle installation d'Ubuntu 17.10, sur laquelle j'ai installé le package oracle-java8-installer (de PPA).

Mais lorsque j'essaie de compiler un projet ionique en utilisant "ionic cordova build android", il renvoie cette erreur:

    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

Je suis connecté à Internet et j'ai essayé de:

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

... et réinstallez également npm, ionic, java et gradle, le tout sans succès.

edit: J'ai également ANDROID_HOME et JAVA_HOME exportés dans .bashrc et Android Studio installé. J'ai essayé de construire le projet sur une machine différente et cela fonctionne très bien. Je ne peux pas essayer d'utiliser OpenJDK car cela ne fonctionne pas bien avec Android Studio.

Leonardo Amorim
la source

Réponses:

26

Essayer

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

suivi par

sudo apt-get install ca-certificates-java

pour réparer les cacerts cassés.
Pour moi, cela l'a corrigé.
Bonne chance!

Zod
la source
A également fonctionné pour moi pour openjdk-9! Une explication sur la raison pour laquelle cela fonctionne quand --reinstallet l'exécution manuelle du script de post-installation n'a pas fonctionné? Je suis très intéressé pour référence future. Merci!
Andy
1
OMG. Je cherche cette réponse depuis des semaines. Toutes les autres réponses à cette question que j'ai trouvées n'ont rien fait - absolument rien. Cela a parfaitement fonctionné. Quelque chose semble assez cassé avec ces certificats sur Ubuntu 17.10.
Dan
Correction de Jenkins sur 17.10 aussi. Merci (et voté positivement)
Forbesmyester
Merci a beaucoup travaillé pour moi avec gradle (4.5.1) et open-jdk-9. Ne fonctionnait pas avec l'oracle-jdk-9 cependant.
Pabi
Solution pour Ubuntu 18.04. J'ai installé openjdk version 11. En raison d'Android, j'ai dû installer en plus openjdk 8. Pour une raison inconnue, le fichier cacerts installé par openjdk 11 ne fonctionne pas avec openjdk 8. J'ai dû désinstaller les deux jdks et installer uniquement la version 8, puis régénérer les cacerts fichier.
Greg Dan