Weiß jemand wie man das löst? Ich habe viele Dinge ausprobiert, aber nichts davon hat funktioniert.
Und wenn ich auf weitere Details klicke, bekomme ich das:
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)
Was genau versuchst du zu tun? Das Posten eines Beispielcodes wäre hilfreich.
– Jonik
27. Juni 2009 um 11:48 Uhr
Und bitte poste was du schon probiert hast?
– akarnokd
27. Juni 2009 um 12:26 Uhr
Es sieht nicht so aus, als hätte Tomi irgendeinen KeyStore-bezogenen Code geschrieben; dieser Stack ist einfach ein Applet für den Anfang. Es sieht so aus, als hätte der Klassenlader Probleme bei der Vorbereitung auf die Überprüfung von Applet-Signaturen.
– Ericsson
27. Juni 2009 um 17:16 Uhr
@Erickson: Ja. Jetzt sehe ich es auch. Aber ohne eine OP-Antwort können wir leider nicht weitermachen.
– akarnokd
27. Juni 2009 um 18:28 Uhr
Wie haben Sie die JKS-Datei generiert? Sehen Sie sich diesen Thread an: stackoverflow.com/a/59312913/7051466
– Zak Aroui
12. Dezember 2019 um 21:30 Uhr
Sie können die Datei während des Kopierens/Übertragens beschädigen.
Benutzt du Maven? Wenn Sie die Keystore-Datei mit „filter=true“ kopieren, können Sie die Datei beschädigen.
Bitte überprüfen Sie die Dateigröße.
Großartig! Ich habe mir wirklich geholfen. Könnten Sie bitte erläutern, warum der Filterparameter den Schlüsselspeicher beschädigt?
– Dmitri
30. Juli 2013 um 14:39 Uhr
in meinem Fall die maven-cargo-plugin Containerkonfiguration verwenden sollte <files><file>...</file></files> für Binärdateien, anstatt <configfiles><configfile>gem die maven:cargo-Dokumentation
– krevelen
13. März 2018 um 15:02 Uhr
Xiezefan
Vielleicht kodiert Maven Ihren KeyStore, Sie können filtering=false setzen, um dieses Problem zu beheben.
<build>
...
<resources>
<resource>
...
<!-- set filtering=false to fix -->
<filtering>false</filtering>
...
</resource>
</resources>
</build>
Ich hatte unten in meinem Elternteil Pom. Das Markieren der Filterung als falsch löste das Problem.src/main/resourcestrue
– Sanjay Jain
6. März 2020 um 6:45 Uhr
Danke, das hat bei mir funktioniert. Ich musste nach der Änderung erneut einen Maven-Build erstellen
– Erstpostkommentator
15. Juli 2021 um 10:39 Uhr
(Neu-)Installation des neuesten JDK (z Orakels) hat es für mich behoben.
Vor der Installation des neuesten JDK, als ich den folgenden Befehl in Terminal.app ausgeführt habe:
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)
Führen Sie jedoch nach der Installation des neuesten Oracle JDK und dem Neustart von Terminal den folgenden Befehl aus:
Dies zeigt an, dass das Schlüsseltool auf dem Pfad auf den Schlüsselspeicher zugreifen kann.
Das hat bei mir funktioniert – ich habe nur die neueste Version installiert, die der Mac bereits als Patch oder so “aktualisiert” hatte – aber erst, als ich ein neues Terminalfenster gestartet habe, hat der Pfad das neue Java-Update verwendet. Besonders nützlich waren die Befehle, die den Fehler replizierten und zeigten, dass das Problem behoben wurde (obwohl diese aufgrund der $(java_home)-Referenz im Terminal funktionierten, wo der gradle-Befehl nicht funktionierte, was etwas verwirrend war)!
– android.weasel
25. Oktober 2016 um 22:42 Uhr
Dieser Befehl hat mir geholfen, die jks-Datei zu validieren (keytool -list -keystore )
– SudoPlz
28. April 2020 um 20:21 Uhr
Dies funktionierte nach der Installation des neuesten JDK !!
– Petrus
13. Juni 2022 um 7:16 Uhr
Schoaeb
Ich hatte das gleiche Problem mit verschiedenen Versionen von keytool:
C:\Programme\Java\jdk1.8.0_51\bin\keytool
aber die gleiche Keystore-Datei funktionierte gut mit
“C:\Programme\Java\jre1.8.0_201\bin\keytool”
Ich weiß, es ist ein alter Thread, aber ich habe viele Stunden damit verbracht, das herauszufinden … : D
Ich hatte viel Zeit damit verbracht und endlich funktionierte das für mich –
Gehen Sie zu Datei -> Projektstruktur -> SDK-Speicherort -> Gradle-Einstellungen -> Gradle-JDK ändern -> von 1.8 auf 11
Ändern Sie einfach Gradle JDK -> von 1.8 auf 11, erstellen Sie das Projekt neu und versuchen Sie es erneut
Danke! Das Aktualisieren von Gradle JDK auf 11 hat bei mir funktioniert
– Harschal Pudale
26. November 2022 um 13:34 Uhr
Fariba
Bei mir ist dieses Problem aufgetreten, weil ich eine .jks-Datei auf meinem Laptop mit 1.8.0_251 generiert und auf den Server mit Java 1.8.0_45 kopiert habe und als ich diese .jks-Datei in meinem Code verwendet habe, habe ich java.io.IOException: Invalid erhalten Keystore-Format.
Um dieses Problem zu lösen, habe ich eine .jks-Datei direkt auf dem Server generiert, anstatt sie von meinem Laptop mit einer anderen Java-Version zu kopieren.
Danke! Das Aktualisieren von Gradle JDK auf 11 hat bei mir funktioniert
– Harschal Pudale
26. November 2022 um 13:34 Uhr
Ich denke, die Keystore-Datei, die Sie verwenden möchten, hat ein anderes oder nicht unterstütztes Format in Bezug auf Ihre Java-Version. Könntest du mehr Infos zu deiner Aufgabe posten?
Im Allgemeinen müssen Sie zur Lösung dieses Problems möglicherweise den gesamten Schlüsselspeicher neu erstellen (z. B. mit einer anderen JDK-Version). Im Export-Import die Schlüssel zwischen dem alten und dem neuen – wenn Sie es schaffen, den alten woanders zu öffnen.
Wenn es sich einfach um eine nicht unterstützte Version handelt, versuchen Sie die Hüpfburg Kryptoanbieter zum Beispiel (obwohl ich nicht sicher bin, ob es Java für mehr Keystore-Typen unterstützt?).
Bearbeiten: Ich habe mir die Feature-Spezifikation von BC angesehen.
Was genau versuchst du zu tun? Das Posten eines Beispielcodes wäre hilfreich.
– Jonik
27. Juni 2009 um 11:48 Uhr
Und bitte poste was du schon probiert hast?
– akarnokd
27. Juni 2009 um 12:26 Uhr
Es sieht nicht so aus, als hätte Tomi irgendeinen KeyStore-bezogenen Code geschrieben; dieser Stack ist einfach ein Applet für den Anfang. Es sieht so aus, als hätte der Klassenlader Probleme bei der Vorbereitung auf die Überprüfung von Applet-Signaturen.
– Ericsson
27. Juni 2009 um 17:16 Uhr
@Erickson: Ja. Jetzt sehe ich es auch. Aber ohne eine OP-Antwort können wir leider nicht weitermachen.
– akarnokd
27. Juni 2009 um 18:28 Uhr
Wie haben Sie die JKS-Datei generiert? Sehen Sie sich diesen Thread an: stackoverflow.com/a/59312913/7051466
– Zak Aroui
12. Dezember 2019 um 21:30 Uhr