Minecraft z OpenJDK 7, otrzymuję „parametr trustAnchors musi być niepusty”

15

Używam Ubuntu 15.04 i OpenJDK 7, próbując uruchomić Minecraft. Właśnie to dostaję.

EDYCJA: Minecraft działa teraz, gdy go używam, sudo java -jar Minecraft.jarale nie działa bez superużytkownika, jak mam to naprawić! Powodem, dla którego nie mogę uruchomić go jako superużytkownika przez cały czas, jest to, że chcę móc go uruchomić, klikając go dwukrotnie na pulpicie.

Downloading: https://s3.amazonaws.com/Minecraft.Download/launcher/launcher.pack.lzma (try 4/10)
Exception: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

Podczas uruchamiania. Próbowałem użyć OpenJDK 8 i to samo zrobiło, próbowałem także java 8 Oracle.

Minecraft działał dobrze na moim starym laptopie 14.04 za pomocą OpenJDK 7.

EDYCJA 2: Teraz, po uzyskaniu wyjątku SSL, uruchamia program uruchamiający i mówi Graj w trybie offline, więc poszedłem do zakładki „dziennik uruchamiania” i dostaję to (Przepraszam, nie jest w formacie kodu, ponieważ nie mogę tego uruchomić, edytuj to!) :

[16:46:39 INFO]: Minecraft Launcher 1.6.11 (through bootstrap 5) started on linux...
[16:46:39 INFO]: Current time is May 25, 2015 4:46:39 PM
[16:46:39 INFO]: System.getProperty('os.name') == 'Linux'
[16:46:39 INFO]: System.getProperty('os.version') == '3.19.0-18-lowlatency'
[16:46:39 INFO]: System.getProperty('os.arch') == 'amd64'
[16:46:39 INFO]: System.getProperty('java.version') == '1.8.0_45-internal'
[16:46:39 INFO]: System.getProperty('java.vendor') == 'Oracle Corporation'
[16:46:39 INFO]: System.getProperty('sun.arch.data.model') == '64'
[16:46:39 INFO]: proxy == DIRECT
[16:46:39 INFO]: Refreshing local version list...
[16:46:39 INFO]: Refreshing remote version list...
[16:46:39 ERROR]: Unexpected exception refreshing version list
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) ~[?:1.8.0_45-internal]
    at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1937) ~[?:1.8.0_45-internal]
    at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1894) ~[?:1.8.0_45-internal]
    at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1877) ~[?:1.8.0_45-internal]
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1398) ~[?:1.8.0_45-internal]
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1375) ~[?:1.8.0_45-internal]
    at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:563) ~[?:1.8.0_45-internal]
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185) ~[?:1.8.0_45-internal]
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1512) ~[?:1.8.0_45-internal]
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1440) ~[?:1.8.0_45-internal]
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254) ~[?:1.8.0_45-internal]
    at com.mojang.launcher.Http.performGet(Http.java:54) ~[launcher.jar:1.6.11]
    at net.minecraft.launcher.updater.RemoteVersionList.getContent(RemoteVersionList.java:27) ~[launcher.jar:1.6.11]
    at net.minecraft.launcher.updater.VersionList.refreshVersions(VersionList.java:85) ~[launcher.jar:1.6.11]
    at net.minecraft.launcher.updater.MinecraftVersionManager.refreshVersions(MinecraftVersionManager.java:60) ~[launcher.jar:1.6.11]
    at net.minecraft.launcher.Launcher$2.run(Launcher.java:132) [launcher.jar:1.6.11]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_45-internal]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_45-internal]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_45-internal]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_45-internal]
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_45-internal]
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:90) ~[?:1.8.0_45-internal]
    at sun.security.validator.Validator.getInstance(Validator.java:179) ~[?:1.8.0_45-internal]
    at sun.security.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.java:312) ~[?:1.8.0_45-internal]
    at sun.security.ssl.X509TrustManagerImpl.checkTrustedInit(X509TrustManagerImpl.java:171) ~[?:1.8.0_45-internal]
    at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:184) ~[?:1.8.0_45-internal]
    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124) ~[?:1.8.0_45-internal]
    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1460) ~[?:1.8.0_45-internal]
    at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:212) ~[?:1.8.0_45-internal]
    at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979) ~[?:1.8.0_45-internal]
    at sun.security.ssl.Handshaker.process_record(Handshaker.java:914) ~[?:1.8.0_45-internal]
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1050) ~[?:1.8.0_45-internal]
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1363) ~[?:1.8.0_45-internal]
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1391) ~[?:1.8.0_45-internal]
    ... 16 more
Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
    at java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:200) ~[?:1.8.0_45-internal]
    at java.security.cert.PKIXParameters.<init>(PKIXParameters.java:120) ~[?:1.8.0_45-internal]
    at java.security.cert.PKIXBuilderParameters.<init>(PKIXBuilderParameters.java:104) ~[?:1.8.0_45-internal]
    at sun.security.validator.PKIXValidator.<init>(PKIXValidator.java:88) ~[?:1.8.0_45-internal]
    at sun.security.validator.Validator.getInstance(Validator.java:179) ~[?:1.8.0_45-internal]
    at sun.security.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.java:312) ~[?:1.8.0_45-internal]
    at sun.security.ssl.X509TrustManagerImpl.checkTrustedInit(X509TrustManagerImpl.java:171) ~[?:1.8.0_45-internal]
    at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:184) ~[?:1.8.0_45-internal]
    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124) ~[?:1.8.0_45-internal]
    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1460) ~[?:1.8.0_45-internal]
    at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:212) ~[?:1.8.0_45-internal]
    at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979) ~[?:1.8.0_45-internal]
    at sun.security.ssl.Handshaker.process_record(Handshaker.java:914) ~[?:1.8.0_45-internal]
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1050) ~[?:1.8.0_45-internal]
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1363) ~[?:1.8.0_45-internal]
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1391) ~[?:1.8.0_45-internal]
    ... 16 more
[16:46:40 INFO]: Loaded 2 profile(s); selected 'AsherMaster'
[16:46:40 INFO]: Refreshing auth...
[16:46:40 INFO]: Logging in with access token
[16:46:40 ERROR]: Exception whilst logging into profile
com.mojang.authlib.exceptions.AuthenticationUnavailableException: Cannot contact authentication server
    at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:71) ~[launcher.jar:1.6.11]
    at com.mojang.authlib.yggdrasil.YggdrasilUserAuthentication.logInWithToken(YggdrasilUserAuthentication.java:132) ~[launcher.jar:1.6.11]
    at com.mojang.authlib.yggdrasil.YggdrasilUserAuthentication.logIn(YggdrasilUserAuthentication.java:55) ~[launcher.jar:1.6.11]
    at net.minecraft.launcher.Launcher.ensureLoggedIn(Launcher.java:214) [launcher.jar:1.6.11]
    at net.minecraft.launcher.Launcher$2.run(Launcher.java:168) [launcher.jar:1.6.11]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_45-internal]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_45-internal]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_45-internal]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_45-internal]
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_45-internal]
Caused by: 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) ~[?:1.8.0_45-internal]
    at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1937) ~[?:1.8.0_45-internal]
    at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1894) ~[?:1.8.0_45-internal]
    at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1877) ~[?:1.8.0_45-internal]
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1398) ~[?:1.8.0_45-internal]
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1375) ~[?:1.8.0_45-internal]
    at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:563) ~[?:1.8.0_45-internal]
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185) ~[?:1.8.0_45-internal]
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1282) ~[?:1.8.0_45-internal]
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1257) ~[?:1.8.0_45-internal]
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250) ~[?:1.8.0_45-internal]
    at com.mojang.authlib.HttpAuthenticationService.performPostRequest(HttpAuthenticationService.java:73) ~[launcher.jar:1.6.11]
    at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:54) ~[launcher.jar:1.6.11]
    ... 9 more
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:90) ~[?:1.8.0_45-internal]
    at sun.security.validator.Validator.getInstance(Validator.java:179) ~[?:1.8.0_45-internal]
    at sun.security.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.java:312) ~[?:1.8.0_45-internal]
    at sun.security.ssl.X509TrustManagerImpl.checkTrustedInit(X509TrustManagerImpl.java:171) ~[?:1.8.0_45-internal]
    at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:184) ~[?:1.8.0_45-internal]
    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124) ~[?:1.8.0_45-internal]
    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1460) ~[?:1.8.0_45-internal]
    at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:212) ~[?:1.8.0_45-internal]
    at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979) ~[?:1.8.0_45-internal]
    at sun.security.ssl.Handshaker.process_record(Handshaker.java:914) ~[?:1.8.0_45-internal]
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1050) ~[?:1.8.0_45-internal]
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1363) ~[?:1.8.0_45-internal]
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1391) ~[?:1.8.0_45-internal]
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1375) ~[?:1.8.0_45-internal]
    at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:563) ~[?:1.8.0_45-internal]
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185) ~[?:1.8.0_45-internal]
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1282) ~[?:1.8.0_45-internal]
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1257) ~[?:1.8.0_45-internal]
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250) ~[?:1.8.0_45-internal]
    at com.mojang.authlib.HttpAuthenticationService.performPostRequest(HttpAuthenticationService.java:73) ~[launcher.jar:1.6.11]
    at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:54) ~[launcher.jar:1.6.11]
    ... 9 more
Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
    at java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:200) ~[?:1.8.0_45-internal]
    at java.security.cert.PKIXParameters.<init>(PKIXParameters.java:120) ~[?:1.8.0_45-internal]
    at java.security.cert.PKIXBuilderParameters.<init>(PKIXBuilderParameters.java:104) ~[?:1.8.0_45-internal]
    at sun.security.validator.PKIXValidator.<init>(PKIXValidator.java:88) ~[?:1.8.0_45-internal]
    at sun.security.validator.Validator.getInstance(Validator.java:179) ~[?:1.8.0_45-internal]
    at sun.security.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.java:312) ~[?:1.8.0_45-internal]
    at sun.security.ssl.X509TrustManagerImpl.checkTrustedInit(X509TrustManagerImpl.java:171) ~[?:1.8.0_45-internal]
    at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:184) ~[?:1.8.0_45-internal]
    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124) ~[?:1.8.0_45-internal]
    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1460) ~[?:1.8.0_45-internal]
    at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:212) ~[?:1.8.0_45-internal]
    at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979) ~[?:1.8.0_45-internal]
    at sun.security.ssl.Handshaker.process_record(Handshaker.java:914) ~[?:1.8.0_45-internal]
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1050) ~[?:1.8.0_45-internal]
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1363) ~[?:1.8.0_45-internal]
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1391) ~[?:1.8.0_45-internal]
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1375) ~[?:1.8.0_45-internal]
    at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:563) ~[?:1.8.0_45-internal]
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185) ~[?:1.8.0_45-internal]
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1282) ~[?:1.8.0_45-internal]
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1257) ~[?:1.8.0_45-internal]
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250) ~[?:1.8.0_45-internal]
    at com.mojang.authlib.HttpAuthenticationService.performPostRequest(HttpAuthenticationService.java:73) ~[launcher.jar:1.6.11]
    at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:54) ~[launcher.jar:1.6.11]
    ... 9 more
ashermaster
źródło
Tak proszę. Potrzebuję całej wiadomości.
AB
Przejdź do programu Minecraft Launcher i otwórz kartę dziennika uruchamiania . Skopiuj wszystkie wiadomości, edytuj swoje pytanie i dodaj te wiadomości.
AB
Jako superuser? To naprawdę zły pomysł.
AB
Przenieś folder i popraw uprawnienia.
AB
Otwórz terminal i ogień komendę: sudo mv /root/.minecraft ~/.minecraft. I poleceniesudo chown -R $USER:$USER ~/.minecraft
AB

Odpowiedzi:

34

W rzeczywistości lepszą odpowiedzią jest wpisanie następującego w wierszu polecenia.

sudo update-ca-certificates -f
Todd Carnes
źródło
dzięki, też mi pomogło =)
Alexander Logger
1
pomogło to również naprawić moją konfigurację maven 15.10
Kalle
To była też poprawka dla mnie ... Szukałem przez minutę. Dzięki!
Filip
Pomogło mi to również, zainstalowałem OpenJDK8 na serwerze ubuntu (przebiegle) i próbowałem uruchomić aplikację Java, która używa OAuth dla Twittera, otrzymywałem ten błąd i byłem bardzo zdezorientowany, ponieważ ca-certyfikaty-Java zostały już zainstalowane. Po uruchomieniu tego wszystko działało dobrze!
mgrandi
Mogę również potwierdzić, że to zadziałało również dla mnie. Otrzymałem ten błąd, próbując odczytać adresy URL podcastów z instancji hostowanej przez RackSpace, i to polecenie naprawiło to.
Clay Ferguson
5

Otwórz terminal i uruchom następujące polecenie:

sudo apt-get install --reinstall ca-certificates-java

I upewnij się, że ustawienie czasu twojego systemu jest prawidłowe.

Źródło

Cytuję:

Zasadniczo Minecraft używa protokołu SSL do ochrony twojego loginu, ale Java nie posiadała certyfikatów potrzebnych do weryfikacji. Program uruchamiający Minecraft naprawdę powinien dawać lepszy komunikat o błędzie, ale to naprawdę była wina Ubuntu. Musisz ca-certificates-javazainstalować pakiet, ale w mojej instalacji Ubuntu został uszkodzony. Spróbuj zrobić ls /etc/ssl/certs/java/cacerts. Jeśli okaże się, że brakuje, musisz skopiować go od znajomego lub innej maszyny z systemem Unix. Nie chcesz kopiować plików zabezpieczających od nieznajomych…

AB
źródło
Ten sam komunikat o błędzie po wypróbowaniu tego jest moim „ustawieniem czasu” tylko czasem systemowym, ponieważ jest to właściwe. Nie brakuje również ls / etc / ssl / certs / java / cacerts
ashermaster
3

W końcu znalazłem rozwiązanie po tym, jak żadne inne dla mnie nie pracowało. Na dole tego raportu o błędach znalazłem magiczną serię poleceń:

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

I wtedy:

sudo apt-get install ca-certificates-java

To natychmiast rozwiązało problem dla mnie.

Elijah Goforth
źródło
1
To działało dla mnie na Kubuntu 18.04.
Brandon
1

Właśnie to rozwiązałem! Oto jak naprawić wszystkie błędy SSL w Minecraft.

  1. Trzeba innego Linux „cacerts” pliku komputerowego, więc na innym Linux PC uruchomić to polecenie:

    readlink -f /usr/bin/java | sed "s:bin/java::"

    i idź do tej ścieżki (Coś jak /usr/lib/jvm/java-8-openjdk-amd64/jre/).

  2. Otwórz folder „lib”, a następnie otwórz folder „bezpieczeństwo”.
  3. Skopiuj plik „cacerts”.
  4. Uruchom ponownie polecenie na komputerze i przejdź do tej ścieżki:

    readlink -f /usr/bin/java | sed "s:bin/java::"
    • Jeśli masz problemy z edycją, musisz otworzyć „Pliki” za pomocą sudo -H nautilus.
  5. Otwórz „lib”, a następnie „bezpieczeństwo” ponownie.
  6. Zamień plik „cacerts” na plik z innego komputera.

Jeśli nie możesz znaleźć pliku „cacerts” na innym komputerze, sprawdź jego ścieżkę /etc/ssl/certs/java/i powinieneś zobaczyć cacerts. Nie mogę jednak zagwarantować, że to zadziała.

ashermaster
źródło