keytool-Fehler beim erstellen BKS keystore: providerpath ist nicht eine juristische Befehl
Ich bin versuchen, um eine "bks" - keystore mit keytool (mit terminal app unter Mac OS X). Ich bin nach den Anweisungen in:
keytool-Fehler: java.Sicherheit.KeyStoreException: BKS nicht gefunden
Dies ist meine Verwendung:
keytool -genkeypair -v -alias androiddebugkey -keyalg RSA -keysize 2048 -validity 10000 -keypass android -keystore /Users/djames/dropbox/bc146keystore/debug.keystore -storepass android -storetype BKS -providerclass org.bouncycastle.jce.provider.BouncyCastleProvider –providerpath /Users/djames/dropbox/bc146keystore/bcprov-jdk16-146.jar -dname "CN=Android Debug, OU=Android, O=Android, L=Whitefish, S=MT, C=US"
Ich erhalte die folgende Fehlermeldung:
keytool error: java.lang.RuntimeException: Usage error, ?providerpath is not a legal command
java.lang.RuntimeException: Usage error, ?providerpath is not a legal command
at sun.security.tools.KeyTool.parseArgs(KeyTool.java:375)
Habe ich gesehen, das -provider path
option empfohlen, die in zahlreichen web-Beiträge (einschließlich der oben genannten) und wenn ich laufen keytool -help
es bestätigt die syntax ist zulässig:
keytool usage: ...
-genkeypair [-v] [-protected]
[-alias <alias>]
[-keyalg <keyalg>] [-keysize <keysize>]
[-sigalg <sigalg>] [-dname <dname>]
[-validity <valDays>] [-keypass <keypass>]
[-keystore <keystore>] [-storepass <storepass>]
[-storetype <storetype>] [-providername <name>]
[-providerclass <provider_class_name> [-providerarg <arg>]] ...
[-providerpath <pathlist>]
Ich habe auch versucht die folgende alternative (pro http://docs.oracle.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html):
- löschen der
-providerpath
Möglichkeit, diekeytool
Befehl, - Platzierung der
bcprov-jdk16-146.jar
innerhalb der{$JAVA_HOME/lib/ext}
Ordner - hinzufügen
security.provider.3=org.bouncycastle.jce.provider.BouncyCastleProvider
zu java.Sicherheit Datei.
Aber es noch nicht.
Irgendwelche Ideen auf, was kann ich anders machen, um erfolgreich zu sein bei der Schaffung einer BKS keystore?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist viele Jahre her, aber ich bin versucht das auch.
Die Antwort ist, dass Sie die Parameter in der falschen Reihenfolge. Die -providerpath kommen muss vor die -providerclass parameter.
Ich hoffe, das hilft jemandem in Zukunft die Suche nach einer Lösung.
Ich war nie in der Lage, erfolgreich zu sein mit Keytool. Dies ist, was ich getan habe um das problem zu lösen, anstatt: ich habe eine Kopie der Standard-debug.keytool (a JKS keystore-Typ), die erstellt wurde von Eclipse (Indigo SR2) automatisch das erste mal ein android-Programm ausführen in Eclipse und verwendet Portecle (http://portecle.sourceforge.net/) zu konvertieren, das auf eine BKS keystore-Typ. Das ist jetzt der schwierige Teil: Wenn ich nun die BKS version von debug.keytool an die Stelle der ursprünglichen, ich habe ein "Android Verpackung error" Eclipse “java.io.IOException: Invalid keystore format" immer, wenn ich würde versuchen, führen Sie das android-Programm. Allerdings, wenn ich das original Pioneer version von debug.keytool in das Standard-Verzeichnis, in dem Eclipse erstellt, dann könnte ich die BKS-version die debug.keytool in das Android-Programm /resources/raw Unterordner und Android haben öffnen Sie es und erkennen es. Jim
Eine einfache alternative ist die Verwendung Portecle zu generieren, die BKS:
C:\Program Files (x86)\Portecle\bcprov.jar
). Gleiche Benennung erforderlich ist.Mehr Erklärungen hier.
Ich versuche zu tun, SSL-Verbindung mit Zertifikaten, so zu unterstützen, bei Android muss ich verwenden jks /bks-Dateien wie trust-Shop.
Download der Bouncycastle provider-jar-Datei und platzieren Sie unter den unten Pfad:
Update der java.Sicherheit Datei durch hinzufügen der provider für Sie die folgende Datei
Den provider hinzufügen
Schließen Sie die Eingabeaufforderung, und öffnen Sie die execute-Befehl zu bekommen bks-Datei wie unten:
Nun können Sie die bks-Datei in Ihrem Ordner.
Dank