15.10更新後,我無法玩Minecraft或FTB

15.10更新後,我無法玩Minecraft或FTB

我之前用 Xubuntu 15.4 就可以玩 Minecraft。昨天更新到15.10後,我無法在線上玩。這裡是啟動日誌。我嘗試過重新安裝 Minecraft 本身和 Java。我似乎在 Feed the Beast(Minecraft 的 modpack 用戶端)中遇到了另一個問題,它給了我這些錯誤:

Authlib checksum download failed, please check log for bad SSL 
certificates: javax.net.ssl.SSLHandshakeException: 
sun.security.validator.ValidatorException: PKIX path building failed: 
sun.security.provider.certpath.SunCertPathBuilderException: unable to
find valid certification path to requested target

這是 FTB 啟動器中的另一個錯誤:

SSL handshake failed. Something might be altering SSL certificates
Certificates are not trusted by JVM certificate chain
Certificate chain will be printed in debug logging level
Authlib Download Failed

還有另一個:

No usable authlib available. Please check your firewall rules and network 
connection. Can't start MC without working authlib. Launch button will be 
disabled.

作為記錄;我沒有使用防火牆,並且我擁有chmod +x每個 .jar 檔案。我在幾個 Minecraft 和 FTB 論壇上搜尋過答案,但沒有找到任何答案。

我認為這些問題有可能是相關的,但是比我了解更多的人可能可以證明我錯了。

我將不勝感激所提供的任何幫助。

謝謝!

編輯:一週後沒有回覆我幾乎放棄了。我還是不知道該怎麼辦。

編輯:我已將oracle-java其刪除並替換為open-jdk-8.現在我得到這個錯誤:Recognized exception: the likely cause is a set of broken/missing root-certificates. Check your java install and perhaps reinstall it.

Unable to download remote file. Check your internet connection/proxy settings.
FATAL ERROR: net.minecraft.bootstrap.FatalBootstrapError: Unable to download while being forced
    at net.minecraft.bootstrap.Bootstrap.execute(Bootstrap.java:95)
    at net.minecraft.bootstrap.Bootstrap.main(Bootstrap.java:381)


Please fix the error and restart.

我搞亂了一些並向jre/lib/security/cacerts文件添加了一個證書。這樣我取得了一些進展,現在日誌如下圖:

[20:58:32 INFO]: Logging in with username & password
[20:58:32 ERROR]: Couldn't log in
com.mojang.authlib.exceptions.AuthenticationUnavailableException: Cannot contact authentication server
    at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:71) ~[launcher.jar:1.6.44]
    at com.mojang.authlib.yggdrasil.YggdrasilUserAuthentication.logInWithPassword(YggdrasilUserAuthentication.java:74) ~[launcher.jar:1.6.44]
    at com.mojang.authlib.yggdrasil.YggdrasilUserAuthentication.logIn(YggdrasilUserAuthentication.java:57) ~[launcher.jar:1.6.44]
    at net.minecraft.launcher.ui.popups.login.LogInForm$4.run(LogInForm.java:171) [launcher.jar:1.6.44]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_66-internal]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_66-internal]
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_66-internal]
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) ~[?:1.8.0_66-internal]
    at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949) ~[?:1.8.0_66-internal]
    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302) ~[?:1.8.0_66-internal]
    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296) ~[?:1.8.0_66-internal]
    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1509) ~[?:1.8.0_66-internal]
    at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216) ~[?:1.8.0_66-internal]
    at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979) ~[?:1.8.0_66-internal]
    at sun.security.ssl.Handshaker.process_record(Handshaker.java:914) ~[?:1.8.0_66-internal]
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062) ~[?:1.8.0_66-internal]
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) ~[?:1.8.0_66-internal]
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403) ~[?:1.8.0_66-internal]
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387) ~[?:1.8.0_66-internal]
    at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559) ~[?:1.8.0_66-internal]
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185) ~[?:1.8.0_66-internal]
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1283) ~[?:1.8.0_66-internal]
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1258) ~[?:1.8.0_66-internal]
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250) ~[?:1.8.0_66-internal]
    at com.mojang.authlib.HttpAuthenticationService.performPostRequest(HttpAuthenticationService.java:73) ~[launcher.jar:1.6.44]
    at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:54) ~[launcher.jar:1.6.44]
    ... 6 more
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:387) ~[?:1.8.0_66-internal]
    at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292) ~[?:1.8.0_66-internal]
    at sun.security.validator.Validator.validate(Validator.java:260) ~[?:1.8.0_66-internal]
    at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324) ~[?:1.8.0_66-internal]
    at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229) ~[?:1.8.0_66-internal]
    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124) ~[?:1.8.0_66-internal]
    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1491) ~[?:1.8.0_66-internal]
    at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216) ~[?:1.8.0_66-internal]
    at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979) ~[?:1.8.0_66-internal]
    at sun.security.ssl.Handshaker.process_record(Handshaker.java:914) ~[?:1.8.0_66-internal]
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062) ~[?:1.8.0_66-internal]
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) ~[?:1.8.0_66-internal]
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403) ~[?:1.8.0_66-internal]
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387) ~[?:1.8.0_66-internal]
    at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559) ~[?:1.8.0_66-internal]
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185) ~[?:1.8.0_66-internal]
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1283) ~[?:1.8.0_66-internal]
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1258) ~[?:1.8.0_66-internal]
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250) ~[?:1.8.0_66-internal]
    at com.mojang.authlib.HttpAuthenticationService.performPostRequest(HttpAuthenticationService.java:73) ~[launcher.jar:1.6.44]
    at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:54) ~[launcher.jar:1.6.44]
    ... 6 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:146) ~[?:1.8.0_66-internal]
    at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:131) ~[?:1.8.0_66-internal]
    at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280) ~[?:1.8.0_66-internal]
    at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382) ~[?:1.8.0_66-internal]
    at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292) ~[?:1.8.0_66-internal]
    at sun.security.validator.Validator.validate(Validator.java:260) ~[?:1.8.0_66-internal]
    at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324) ~[?:1.8.0_66-internal]
    at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229) ~[?:1.8.0_66-internal]
    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124) ~[?:1.8.0_66-internal]
    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1491) ~[?:1.8.0_66-internal]
    at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216) ~[?:1.8.0_66-internal]
    at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979) ~[?:1.8.0_66-internal]
    at sun.security.ssl.Handshaker.process_record(Handshaker.java:914) ~[?:1.8.0_66-internal]
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062) ~[?:1.8.0_66-internal]
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) ~[?:1.8.0_66-internal]
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403) ~[?:1.8.0_66-internal]
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387) ~[?:1.8.0_66-internal]
    at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559) ~[?:1.8.0_66-internal]
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185) ~[?:1.8.0_66-internal]
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1283) ~[?:1.8.0_66-internal]
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1258) ~[?:1.8.0_66-internal]
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250) ~[?:1.8.0_66-internal]
    at com.mojang.authlib.HttpAuthenticationService.performPostRequest(HttpAuthenticationService.java:73) ~[launcher.jar:1.6.44]
    at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:54) ~[launcher.jar:1.6.44]
    ... 6 more

對我來說,這看起來仍然像是證書的問題,但說實話,我對這樣的事情不太了解。感謝您最終的幫助。我還是迷失在這裡。有沒有人有任何知道從哪裡開始嗎?

好吧,現在我得到了一些幫助,但我似乎不知道該怎麼做。我測試過以下 Java 版本:

  • 甲骨文Java 8

  • OpenJRE 8

  • 甲骨文Java 9

答案1

經過測試並與 FTB IRC 中的優秀人員合作後,我們讓它發揮作用。我們改變了一些東西(例如將 cacerts 連結到 java 的二進位檔案中),但真正修復它的是這個命令。幹得好 :)

sudo update-ca-certificates --fresh

答案2

答案是實際上第一次以正確的方式安裝java,即使在這部分之後我試圖使用的主機上也有問題,發生的事情是我寫了一個錯誤的命令,一切都搞砸了。套件ca-certificates 導致Ubuntu 的一半崩潰...結果是重新安裝並進行了數小時的重新配置,所以我無法再重現問題。現在的解決方案:我建議您刪除所有 java 安裝並手動清理 java 資料夾。現在您可以安裝一個名為 default-jre 的軟體包,這應該可以解決問題。它的作用是安裝一個名為 ca-cetficates-java 的套件

sudo apt-get install default-jre

    The following extra packages will be installed:
  ca-certificates-java default-jre-headless fonts-dejavu-extra java-common libatk-wrapper-java libatk-wrapper-java-jni libgif4 libgnomevfs2-0       libgnomevfs2-common libsctp1 lksctp-tools openjdk-7-jre openjdk-7-jre-headless tzdata-java

然後它將帶來 Minecraft 運行所需的證書!它是如此簡單。

舊:我有同樣的問題,它還需要更多證書,但最新的錯誤日誌沒有說明它嘗試訪問哪個網站。一個解決方案是讓java接受任何憑證。 https://stackoverflow.com/questions/1828775/how-to-handle-invalid-ssl-certificates-with-apache-httpclient

答案3

我遇到了這個問題,但 sudo update-ca-certificates --fresh 沒有解決它。事實證明,我的 Icedtea 版本相對於我的 nss 版本已經過時了。

答案4

我可以透過使用 openjdk-8 而不是 openjdk-11 來解決該錯誤。若要了解您使用的 java 版本,請java --version在終端機中輸入。預設情況下,openjdk-java 安裝在/usr/lib/jvm/java-$version-openjdk-$platform(其中 $version 是版本,例如 8,$platform 是平台,例如 amd64)。如果您在那裡找到版本 8,您可以使用以下命令運行啟動器/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -jar FTB_launcher.jar

相關內容