web-dev-qa-db-ja.com

Minecraft with OpenJDK 7、「trustAnchorsパラメーターは空でない必要があります」と表示される

Ubuntu 15.04とOpenJDK 7を使用して、Minecraftを実行しようとしています。これは私が得るものです。

編集:Sudo Java -jar Minecraft.jarを使用するとMinecraftが動作しますが、スーパーユーザーなしでは動作しません。どうすれば修正できますか。常にスーパーユーザーとして実行できないのは、デスクトップでダブルクリックして実行できるようにするためです。

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を使用してみましたが、これも同様に行いました。また、OracleのJava 8も試しました。

Minecraftは、OpenJDK 7を使用する古い14.04ラップトップで正常に動作しました。

編集2:SSL例外を取得した後、ランチャーを起動してPlay Offlineと言うので、「ランチャーログ」タブに行き、これを取得します(動作しないため、コード形式ではありません。編集してください!) :

[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
15
ashermaster

解決しました! MinecraftのすべてのSSLエラーを修正する方法は次のとおりです。

  1. 別のLinuxコンピューターの「cacerts」ファイルが必要なので、別のLinux PCで次のコマンドを実行します。

    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」を開き、次に「security」を開きます。
  6. 「cacerts」ファイルを他のPCのファイルで置き換えます。

別のPCで「cacerts」ファイルが見つからない場合は、このパスの/etc/ssl/certs/Java/を確認すると、cacertsが表示されます。ただし、この動作を保証することはできません。

1
ashermaster

実際には、コマンドプロンプトで次のように入力する方が適切です。

Sudo update-ca-certificates -f
34
Todd Carnes

ターミナルを開き、次のコマンドを実行します。

Sudo apt-get install --reinstall ca-certificates-Java

また、システムの時刻設定が正しいことを確認してください。

ソース

引用:

基本的に、MinecraftはSSLを使用してログインを保護しますが、Javaには検証に必要な証明書がありませんでした。 Minecraftランチャーは実際により良いエラーメッセージを表示するはずですが、これは実際にはUbuntuのせいでした。 ca-certificates-Javaパッケージをインストールする必要がありますが、Ubuntuのインストールでは壊れていました。 ls /etc/ssl/certs/Java/cacertsを試してください。見つからない場合は、友人または別のUnixマシンからコピーする必要があります。見知らぬ人からセキュリティファイルをコピーしたくない…

5
A.B.

他の誰も私のために働かなかった後、私は最終的に解決策を見つけました。 this バグレポートの最後に、この魔法のような一連のコマンドを見つけました。

Sudo dpkg --purge --force-depends ca-certificates-Java

その後:

Sudo apt-get install ca-certificates-Java

これで問題はすぐに解決しました。

3
Elijah Goforth