java. io. IOException: Format invalide du magasin de clés


Quelqu'un sait-il comment résoudre ce problème? J'ai essayé beaucoup de choses, mais aucune n'a fonctionné.

Et quand je clique sur plus de détails, j'obtiens ceci:

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)
Author: sstn, 2009-06-27

6 answers

Vous pouvez corrompre le fichier lors de la copie/transfert.

Utilisez-vous maven? Si vous copiez le fichier keystore avec "filter=true", vous pouvez corrompre le fichier.

Veuillez vérifier la taille du fichier.

 60
Author: Kurtulus Oksuztepe, 2011-08-13 13:05:55

Peut-être que maven encodage vous KeyStore, vous pouvez définir filtering=false pour résoudre le problème.

<build>
    ...
    <resources>
        <resource>
            ...
            <!-- set filtering=false to fix -->
            <filtering>false</filtering>
            ...
        </resource>
    </resources>
</build>
 16
Author: xiezefan, 2016-03-08 07:58:13

(Ré)installer le dernier JDK (par exemple Oracle) l'a corrigé pour moi.

Avant d'installer le dernier JDK, lorsque j'ai exécuté la commande suivante dans Terminal.application:

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

Il en est résulté:

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)

Mais, après avoir installé le dernier Oracle JDK et redémarré Terminal, exécuter la commande suivante:

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

Donne:

Enter keystore password:  

Qui indique que le keytool on path peut accéder au keystore.

 7
Author: Gary S. Weaver, 2016-01-05 21:39:13

Je pense que le fichier keystore que vous souhaitez utiliser a un format différent ou non pris en charge par rapport à votre version Java. Pourriez-vous poster plus d'informations sur votre tâche?

En général, pour résoudre ce problème, vous devrez peut-être recréer le magasin de clés entier (en utilisant une autre version de JDK par exemple). Dans export-importez les clés entre l'ancienne et la nouvelle - si vous parvenez à ouvrir l'ancienne ailleurs.

S'il s'agit simplement d'une version non prise en charge, essayez le BouncyCastle crypto fournisseur par exemple (bien que je ne sois pas sûr qu'il ajoute le support à Java pour plus de types de magasin de clés?).

Edit: J'ai regardé la spécification de fonctionnalité de BC.

 4
Author: akarnokd, 2009-06-27 11:56:46

Votre keystore est cassé, et vous devrez le restaurer ou le régénérer.

 3
Author: Thorbjørn Ravn Andersen, 2009-06-27 15:34:57

J'ai rencontré le problème avec OpenJDK sur ubuntu, j'ai dû installer Oracle JDK pour le faire fonctionner.

Vous pouvez suivre ce guide sur les sites google pour le faire.

 2
Author: Sadiq Ali, 2017-09-19 10:19:38