Помилка сертифіката Java 8 Ubuntu 17.10


10

У мене свіжа установка Ubuntu 17.10, на яку я встановив пакет oracle-java8-installer (від PPA).

Але коли я намагаюся скласти іонний проект за допомогою "іонної кордової збірки 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

щоб виправити розбиті кекси.
Для мене це це виправило.
Удачі!


Працював і для мене, і для openjdk-9! Будь-яке пояснення, чому це працює, коли --reinstallі вручну запуск сценарію після встановлення не зробив? Мені дуже цікаво для подальшого ознайомлення. Дякую!
Енді

1
О БОЖЕ МІЙ. Я шукав цю відповідь тижнями. Кожна інша відповідь на це запитання, яку я знайшов, нічого не робила - абсолютно нічого. Це спрацювало чудово. Щось здається досить зламаним із цими сертами на Ubuntu 17.10.
Ден

Виправлено Дженкінса теж 17.10. Спасибі (і підтримано)
Forbesmyester

Спасибі дуже працювали для мене з gradle (4.5.1) та open-jdk-9. Однак не працював з oracle-jdk-9.
Пабі

Рішення для Ubuntu 18.04. Я встановив openjdk версії 11. Через Android мені довелося додатково встановити openjdk 8. З невідомої причини встановлений файл cacerts від openjdk 11 не працює з openjdk 8. Мені довелося видалити обидва jdks та встановити лише версію 8 та регенерувати касети файл.
Грег Дан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.