Fehler "Falsche Version des Schlüsselspeichers". Wie kann ich ein Keystore-Zertifikat der Version 1 erstellen?

Ich habe Probleme bei der Verwendung von SSL, da im Zusammenhang mit meinem Keystore (selbst erstellt und mit keytool per selbst signiert) die folgende Fehlermeldung angezeigt wird:http://developer.android.com/tools/publishing/app-signing.html):

08-14 20: 55: 23.044: W / System.err (5430): java.io.IOException: Falsche Version des Schlüsselspeichers. 08-14 20: 55: 23.060: W / System.err (5430): at org.bouncycastle.jce.provider.JDKKeyStore.engineLoad (JDKKeyStore.java:812) ...

Der Fehler in der geworfenJDKKeyStore.java Klasse entsteht im folgenden Code:

Blockquote von JDKKeyStore.java:
if (version! = STORE_VERSION) {if (version! = 0) {throw new IOException ("Falsche Version des Schlüsselspeichers."); }}

Blockquote

In diesem Fall ist STORE_VERSION = 1 und meine Version = 3, basierend auf dem Lesen der Details des Zertifikats, das im von mir erstellten Keystore gespeichert ist. Ich weiß nicht, wie ein Keystore mit einem Zertifikat der Version 1 erstellt wird.

Ich fand diese Antwort hilfreich:Keystore der falschen Version beim Ausführen eines https-Aufrufs

Es wird jedoch die Erstellung des Schlüsselspeichers mit den folgenden Parametern verlangt:

-Typ BKS
-provider org.bouncycastle.jce.provider.BouncyCastleProvider
-providerpath /path/to/bouncycastle.jar

Wenn ich jedoch versuche, das Keytool (mit der Terminal-App auf dem Mac) mit diesen Parametern zu erstellen:

keytool -genkeypair -v -alias androiddebugkey -keyalg RSA -keysize 2048 -validity 10000 -keypass android -keystore /Users/djames/dropbox/bc146keystore/debug.keystore -storepass android -providerclass org.bouncypriderpriderprovider.jce / Benutzer / djames / dropbox / bc146keystore /

(wo / Users / djames / dropbox / bc146keystore / ist der Pfad zum Hüpfburgglas: bcprov-jdk16-146.jar)

Ich erhalte folgenden Fehler:

keytool error: java.lang.RuntimeException: Verwendungsfehler,? providerpath ist kein zulässiger Befehl. java.lang.RuntimeException: Verwendungsfehler,? providerpath ist kein zulässiger Befehl. sun.security.tools.KeyTool.parseArgs (KeyTool.java: 375) bei sun.security.tools.KeyTool.run (KeyTool.java:171) bei sun.security.tools.KeyTool.main (KeyTool.java:166)

Ich verstehe nicht, was mir das sagt. Wenn ich: keytool -help verwende, wird mir mitgeteilt, dass die folgenden Optionen für die Option -genkeypair gültig sind:

-genkeypair [-v] [-protected] [-alias] [-keyalg] [-keysize] [-sigalg] [-dname] [-validity] [-keypass] [-keystore] [-storepass] [-storetype] [-providername] [-providerklasse [-providerarg]] ... [-providerpfad]

Aber in den Oracle-Dokumenten Java Version 6, die ich verwende (http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/keytool.html)
es sagt mir, dass dies die Optionen sind:

-genkeypair {-alias alias} {-keyalg keyalg} {-keysize keysize} {-sigalg sigalg} [-dname dname] [-keypass keypass] {-validity valDays} {-storetype storetype} {-keystore keystore} [-storepass storepass] {-providerClass provider_class_name {-providerArg provider_arg}} {-v} {-protected} {-Jjavaoption}

das beinhaltet nicht die-providerpath option. Warum die Uneinigkeit? (Wenn ich die Option -providerpath nicht verwende, wird bei der Option eine unbekannte Klassenausnahme angezeigt:"-providerclass org.bouncycastle.jce.provider.BouncyCastleProvider"...)

Wenn ich google: keytool -providerpath
Ich bekomme nichts hilfreiches, um das zu lösen.

Ich bin nicht sicher, wie ich das Problem mit der Keystore-Version lösen soll, ohne mein Keytool-Problem zu lösen. Anregungen geschätzt.

Jim

(Mac OSX 10.6.8 if relevant)

Antworten auf die Frage(4)

Ihre Antwort auf die Frage