web-dev-qa-db-ja.com

java.io.IOException:無効なキーストア形式

誰もこれを解決する方法を知っていますか?私は多くのことを試しましたが、どれもうまくいきませんでした。

さらに詳細をクリックすると、これが得られます:

at Sun.security.provider.JavaKeyStore.engineLoad(Unknown Source)
atsun.security.provider.JavaKeyStore$JKS.engineLoad(Unknown Source)
at Java.security.KeyStore.load(Unknown Source)
at com.Sun.deploy.security.RootCertStore$1.run(Unknown Source)
at Java.security.AccessController.doPrivileged(Native Method)
at com.Sun.deploy.security.RootCertStore.loadCertStore(Unknown Source)
at com.Sun.deploy.security.RootCertStore.load(Unknown Source)
at com.Sun.deploy.security.RootCertStore.load(Unknown Source)
at com.Sun.deploy.security.ImmutableCertStore.load(Unknown Source)
at com.Sun.deploy.security.TrustDecider.isAllPermissionGranted(Unknown Source)
at com.Sun.deploy.security.TrustDecider.isAllPermissionGranted(Unknown Source)
at Sun.plugin.security.PluginClassLoader.getPermissions(Unknown Source)
at Java.security.SecureClassLoader.getProtectionDomain(Unknown Source)
at Java.security.SecureClassLoader.defineClass(Unknown Source)
at Java.net.URLClassLoader.defineClass(Unknown Source)
at Java.net.URLClassLoader.access$000(Unknown Source)
at Java.net.URLClassLoader$1.run(Unknown Source)
at Java.security.AccessController.doPrivileged(Native Method)
at Java.net.URLClassLoader.findClass(Unknown Source)
at Sun.applet.AppletClassLoader.findClass(Unknown Source)
at Java.lang.ClassLoader.loadClass(Unknown Source)
at Sun.applet.AppletClassLoader.loadClass(Unknown Source)
at Java.lang.ClassLoader.loadClass(Unknown Source)
at Sun.applet.AppletClassLoader.loadCode(Unknown Source)
at Sun.applet.AppletPanel.createApplet(Unknown Source)
at Sun.plugin.AppletViewer.createApplet(Unknown Source)
at Sun.applet.AppletPanel.runLoader(Unknown Source)
at Sun.applet.AppletPanel.run(Unknown Source)
at Java.lang.Thread.run(Unknown Source)
33
Tomi

コピー/転送中にファイルが破損する可能性があります。

Mavenを使用していますか? 「filter = true」でキーストアファイルをコピーする場合、ファイルが破損する可能性があります。

ファイルサイズを確認してください。

76

キーストアをエンコードするMavenの場合は、filtering = falseを設定して問題を解決できます。

<build>
    ...
    <resources>
        <resource>
            ...
            <!-- set filtering=false to fix -->
            <filtering>false</filtering>
            ...
        </resource>
    </resources>
</build>
26
xiezefan

最新のJDK(たとえば Oracle's )を(再)インストールすると、修正されました。

最新のJDKをインストールする前に、Terminal.appで次のコマンドを実行したとき:

keytool -list -keystore $(/usr/libexec/Java_home)/jre/lib/security/cacerts -v

その結果:

keytool error: Java.io.IOException: Invalid keystore format
Java.io.IOException: Invalid keystore format
    at Sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.Java:650)
    at Sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.Java:55)
    at Java.security.KeyStore.load(KeyStore.Java:1445)
    at Sun.security.tools.keytool.Main.doCommands(Main.Java:792)
    at Sun.security.tools.keytool.Main.run(Main.Java:340)
    at Sun.security.tools.keytool.Main.main(Main.Java:333)

ただし、最新のOracle JDKをインストールしてターミナルを再起動した後、次のコマンドを実行します。

keytool -list -keystore $(/usr/libexec/Java_home)/jre/lib/security/cacerts -v

結果:

Enter keystore password:  

これは、パス上のキーツールがキーストアにアクセスできることを示します。

13
Gary S. Weaver

使用したいキーストアファイルは、Javaバージョンです。タスクの詳細を投稿できますか?

一般に、この問題を解決するには、キーストア全体を再作成する必要がある場合があります(他のJDKバージョンを使用するなど)。エクスポートとインポートでは、古いキーと新しいキーの間のキーを使用します-古いキーを別の場所で開くことができた場合。

サポートされていないバージョンである場合は、 BouncyCastle 暗号プロバイダーを試してください (ただし、Javaのキーストアタイプを追加するには?)にサポートが追加されるかどうかはわかりませんが)

編集:BCの機能仕様を見ました。

4
akarnokd

キーストアが壊れているため、復元または再生成する必要があります。

私は、ubuntuでopenJDKの問題に遭遇し、Oracle JDKをインストールして動作させる必要がありました。

これを行うことができます googleサイトのガイド .

2
Sadiq Ali

プロジェクトをクリーンにビルドしてから、私のために機能したプロジェクトをリビルドします。

0
ultimate