
Раньше я мог нормально играть в Minecraft с Xubuntu 15.4. Вчера, когда я обновился до 15.10, я не могу играть онлайн. Вотжурнал запуска. Я пробовал переустановить и сам Minecraft, и Java. Кажется, у меня возникла еще одна проблема с Feed the Beast (клиент modpack для Minecraft), которая выдает мне следующие ошибки:
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, но ничего не нашел.
Я думаю, что есть вероятность, что эти проблемы связаны, но кто-то, кто знает больше меня, вероятно, сможет доказать, что я ошибаюсь.
Буду признателен за любую помощь.
Спасибо!
EDIT: После недели без ответов я почти сдался. Я все еще не могу понять, что делать.
EDIT: Я удалил 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:
Oracle Java 8
OpenJRE8
Oracle 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