java.io.IOException: le format de Keystore invalide
est ce que quelqu'un sait 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.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.access0(Unknown Source)
at java.net.URLClassLoader.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)
6 réponses
vous pouvez corrompre le fichier pendant 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.
peut-être maven encoding vous KeyStore, vous pouvez définir filtrage=false pour corriger le problème.
<build>
...
<resources>
<resource>
...
<!-- set filtering=false to fix -->
<filtering>false</filtering>
...
</resource>
</resources>
</build>
(Ré)installation de la dernière version de JDK (par exemple, Oracle) réparé pour moi.
avant d'installer le dernier JDK, quand j'ai exécuté la commande suivante dans le Terminal.app:
keytool -list -keystore $(/usr/libexec/java_home)/jre/lib/security/cacerts -v
Ça a donné:
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émarrer le Terminal, exécuter la commande suivante:
keytool -list -keystore $(/usr/libexec/java_home)/jre/lib/security/cacerts -v
résultat:
Enter keystore password:
qui indique que le clavier sur le chemin peut accéder au fichier de stockage des clés.
je pense que le fichier keystore que vous voulez utiliser a un format différent ou non supporté par rapport à votre version Java. Pouvez-vous poster plus d'informations sur votre tâche?
en général, pour résoudre ce problème, vous pourriez avoir besoin de recréer l'ensemble du keystore (en utilisant une autre version de JDK par exemple). Dans export-importer les clés entre l'ancien et le nouveau - si vous parvenez à ouvrir l'ancien ailleurs.
si c'est simplement une version non supportée, essayez la BouncyCastle crypto fournisseur d'accès par exemple (bien que je ne sois pas sûr si cela ajoute du support à Java pour plus de types de keystore?).
Edit: j'ai regardé les caractéristiques de BC.
votre clef de voûte est cassée, et vous devrez la restaurer ou la régénérer.
j'ai rencontré le problème avec openJDK sur ubuntu, installer Oracle JDK pour qu'il fonctionne.
Vous pouvez suivre ce guide sur les sites google pour le faire.