java.io.IOException: format de fichier de clés non valide

Quelqu’un sait-il comment résoudre ceci? J’ai essayé beaucoup de choses, mais aucune d’entre elles 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) 

    Vous pouvez corrompre le fichier pendant la copie / le transfert.

    Utilisez-vous Maven? Si vous copiez le fichier de magasin de clés avec “filter = true”, vous risquez de corrompre le fichier.

    S’il vous plaît vérifier la taille du fichier.

    Peut-être que Maven vous encodera KeyStore, vous pouvez définir le filtrage = false pour résoudre le problème.

      ...   ...  false ...    

    L’installation (re) du dernier JDK (par exemple Oracle ) l’a corrigé.

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

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

    Il en résulta:

     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) 

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

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

    Résulte en:

     Enter keystore password: 

    Ce qui indique que l’outil de clé sur chemin peut accéder au magasin de clés.

    Je pense que le fichier de clés que vous souhaitez utiliser a un format différent ou non pris en charge par rapport à votre version de Java. Pourriez-vous poster quelques informations supplémentaires sur votre tâche?

    En général, pour résoudre ce problème, vous devrez peut-être recréer l’intégralité du fichier de clés (en utilisant une autre version du JDK, par exemple). Dans export-import les clés entre l’ancien et le nouveau – si vous parvenez à ouvrir l’ancien ailleurs.

    S’il s’agit simplement d’une version non prise en charge, essayez par exemple le fournisseur de crypto BouncyCastle (bien que je ne sache pas s’il ajoute une prise en charge de Java pour davantage de types de magasin de clés?) .

    Edit: J’ai regardé les caractéristiques de la BC.

    Votre magasin de clés est cassé et vous devrez le restaurer ou le régénérer.

    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.