Minecraft с OpenJDK 7, я получаю «параметр trustAnchors должен быть непустым»

13

Im использует Ubuntu 15.04 и OpenJDK 7, пытаясь запустить Minecraft. Это то, что я получаю.

EDIT: Minecraft работает сейчас, когда я использую sudo java -jar Minecraft.jar , но не работает без суперпользователя, как бы исправить это! Причина, по которой я не могу запускать ее как суперпользователя все время, потому что я хочу, чтобы ее можно было запустить, дважды щелкнув ее на рабочем столе.

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

При запуске. Я попытался использовать OpenJDK 8, и он тоже это сделал, также я пробовал Java-версию Oracle.

Minecraft отлично работал на моем старом ноутбуке 14.04, используя OpenJDK 7.

ИЗМЕНИТЬ 2: Теперь, после получения исключения SSL, он запускает программу запуска и говорит «Воспроизведение в автономном режиме», поэтому я перешел на вкладку «Launcher log», и я получаю это (Извините, но не в коде, потому что я не могу получить это для работы, отредактируйте это!):

[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.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.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 23.05.2015 в 18:02
источник

3 ответа

0

Я просто решил! Вот как исправить все ошибки SSL в Minecraft.

  1. Вам нужен еще один Linux компьютерный файл cacerts, поэтому на другом ПК с Linux выполните следующую команду:

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

    и перейдите к этому пути (что-то вроде /usr/lib/jvm/java-8-openjdk-amd64/jre/ ).

  2. Откройте папку «lib», затем откройте папку «security».
  3. Скопируйте файл «cacerts».
  4. Запустите команду еще раз на своем компьютере и перейдите к этому пути:

    readlink -f /usr/bin/java | sed "s:bin/java::"
    
    • Если у вас возникли проблемы с редактированием, вам нужно открыть «Файлы», используя sudo -H nautilus .
  5. Откройте «lib», а затем снова «безопасность».
  6. Замените файл «cacerts» файлом с другого ПК.

Если вы не можете найти файл «cacerts» на другом ПК, проверьте этот путь на него /etc/ssl/certs/java/ , и вы увидите cacerts. Я не могу гарантировать, что это работает.

    
ответ дан ashermaster 26.05.2015 в 02:19
источник
32

Собственно, лучшим ответом является ввод следующего в командной строке.

sudo update-ca-certificates -f
    
ответ дан Todd Carnes 12.06.2015 в 02:27
4

Откройте терминал и запустите эту команду:

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

И убедитесь, что настройка времени вашей системы верна.

Источник

Я цитирую:

  

В принципе, Minecraft использует SSL для защиты вашего входа, но Java не   иметь сертификаты, необходимые для проверки. Пусковая установка Minecraft действительно   должно дать лучшее сообщение об ошибке, но это был действительно Ubuntu's   неисправность. Вам нужен пакет ca-certificates-java , но на моем   Ubuntu install, он был сломан. Попробуйте сделать ls /etc/ssl/certs/java/cacerts . Если это не хватает, тогда вам нужно   скопируйте его у друга или другой машины Unix. Вы не хотите   копировать файлы защиты от незнакомых людей ...

    
ответ дан A.B. 23.05.2015 в 19:44