Lỗi chứng chỉ Ubuntu 17.10 Java 8


10

Tôi có một bản cài đặt Ubuntu 17.10 mới, trên đó tôi đã cài đặt gói oracle-java8-Installer (từ PPA).

Nhưng khi tôi cố gắng biên dịch một dự án ion bằng cách sử dụng "ionic cordova build android", nó sẽ đưa ra lỗi này:

    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

Tôi được kết nối với internet và tôi đã cố gắng:

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

... Và cũng cài đặt lại npm, ionic, java và gradle, tất cả đều không thành công.

chỉnh sửa: Tôi cũng đã xuất ANDROID_HOME và JAVA_HOME trong .bashrc và Android Studio đã cài đặt. Tôi đã cố gắng xây dựng dự án trên một máy khác và nó hoạt động tốt. Tôi không thể thử sử dụng OpenJDK vì nó không hoạt động tốt với Android Studio.

Câu trả lời:


26

Thử

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

theo dõi bởi

sudo apt-get install ca-certificates-java

để có được các bản sửa lỗi bị hỏng.
Đối với tôi, điều này đã sửa nó.
Chúc may mắn!


Làm việc cho tôi cũng như cho openjdk-9! Bất kỳ lời giải thích nào về lý do tại sao điều này hoạt động khi --reinstallvà chạy thủ công tập lệnh postinstall không? Tôi rất quan tâm để tham khảo trong tương lai. Cảm ơn!
Andy

1
CHÚA ƠI. Tôi đã tìm kiếm câu trả lời này trong nhiều tuần. Mọi câu trả lời khác cho câu hỏi này tôi đã tìm thấy không làm gì cả - hoàn toàn không có gì. Điều này làm việc hoàn hảo. Một cái gì đó dường như khá bị hỏng với các certs trên Ubuntu 17.10.
Dan

Đã sửa lỗi Jenkins vào ngày 17.10. Cảm ơn (và được nâng cấp)
Forbesmyester

Cảm ơn rất nhiều đã làm việc cho tôi với gradle (4.5.1) và open-jdk-9. Mặc dù vậy, nó không hoạt động với oracle-jdk-9.
Pabi

Giải pháp cho Ubuntu 18.04. Tôi đã cài đặt openjdk phiên bản 11. Vì Android, tôi phải cài đặt thêm openjdk 8. Vì lý do không xác định, cài đặt tệp cacerts bởi openjdk 11 không hoạt động với openjdk 8. Tôi phải gỡ cài đặt cả jdks và chỉ cài đặt phiên bản 8 tập tin.
Greg Dan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.