Frage

Ich brauche Android-Anwendung anmelden (.apk).
Ich habe .pfx Datei. Ich wandelte sie über das Internet Explorer auf .cer Datei und dann konvertieren .cer zu .keystore mit keytool. Dann habe ich versucht, .apk mit jarsigner zu unterschreiben, aber es sagt, dass .keystore nicht Inhalt eines privaten Schlüssels.

Was ich falsch?

War es hilfreich?

Lösung

Verwendung von JDK 1.6 oder höher

Es wurde von Justin in den Kommentaren unter diesem keytool allein ist in der Lage darauf hingewiesen, dies zu tun, mit dem folgenden Befehl (wenn auch nur in JDK 1.6 und höher):

keytool -importkeystore -srckeystore mypfxfile.pfx -srcstoretype pkcs12 
-destkeystore clientcert.jks -deststoretype JKS

Verwendung von JDK 1.5 oder unter

OpenSSL können tun es alle. diese Antwort auf JGuru die beste Methode ist, dass ich bisher gefunden habe .

Zum einen stellen Sie sicher, dass Sie OpenSSL installiert. Viele Betriebssysteme bereits installiert, wie ich mit Mac OS X gefunden.

Die folgenden zwei Befehle wandeln die PFX-Datei in ein Format, das als Java PKCS12 Schlüsselspeicher geöffnet werden kann:

openssl pkcs12 -in mypfxfile.pfx -out mypemfile.pem
openssl pkcs12 -export -in mypemfile.pem -out mykeystore.p12 -name "MyCert"

Hinweis, dass der Name in dem zweiten Befehl vorgesehen ist die Alias ??Ihres Schlüssels in den neuen Schlüsselspeichern.

Sie können den Inhalt des Schlüsselspeichers überprüfen Sie die Java-Dienstprogramm keytool mit dem folgenden Befehl:

keytool -v -list -keystore mykeystore.p12 -storetype pkcs12

Schließlich, wenn Sie müssen Sie dies zu einem JKS Schlüsselspeicher durch den Import der Schlüsselspeicher umwandeln können oben in einen neuen Schlüsselspeicher erstellt:

keytool -importkeystore -srckeystore mykeystore.p12 -destkeystore clientcert.jks -srcstoretype pkcs12 -deststoretype JKS

Andere Tipps

jarsigner können Ihre pfx Datei als Schlüsselspeicher für die Unterzeichnung Ihr Glas verwenden. Achten Sie darauf, dass Ihre pfx Datei mit dem privaten Schlüssel und das Zertifikat-Kette hat, wenn Sie es exportieren. Es besteht keine Notwendigkeit in andere Formate zu konvertieren. Der Trick ist, die Alias ?? Ihre pfx-Datei zu erhalten:

 keytool -list -storetype pkcs12 -keystore your_pfx_file -v | grep Alias

Wenn Sie Ihren Alias ??haben, die Unterzeichnung ist einfach

jarsigner.exe -storetype pkcs12 -keystore pfx_file jar_file "your alias"

Die beiden oben genannten Befehle werden Sie nach dem Passwort fragen Sie bei pfx Export angegeben. Wenn Sie Ihr Passwort im Klartext Verwendung rumhängen haben wollen, die -storepass Schalter vor dem -keystore Schalter

Sobald unterzeichnet, bewundere Ihre Arbeit:

jarsigner.exe -verify -verbose -certs  yourjarfile

Ich fand diese Seite, die Ihnen sagt, wie Sie importieren eine PFX zu JKS (Java Key Store):

keytool -importkeystore -srckeystore PFX_P12_FILE_NAME -srcstoretype pkcs12 -srcstorepass PFX_P12_FILE -srcalias SOURCE_ALIAS -destkeystore KEYSTORE_FILE -deststoretype jks -deststorepass PASSWORD -destalias ALIAS_NAME

Ihre PFX-Datei sollte den privaten Schlüssel in ihm enthalten. Exportieren Sie den privaten Schlüssel und das Zertifikat direkt von der PFX-Datei (zum Beispiel unter Verwendung von OpenSSL) und importieren Sie sie in Ihre Java-Schlüsselspeicher.

Bearbeiten

Weitere Informationen:

  • Download OpenSSL für Windows hier .
  • Private Schlüssel exportieren: openssl pkcs12 -in filename.pfx -nocerts -out key.pem
  • Export-Zertifikat: openssl pkcs12 -in filename.pfx -clcerts -nokeys -out cert.pem
  • Import private Schlüssel und das Zertifikat in Java-Schlüssel keytool verwenden.

Justin (oben) korrekt. Beachten Sie jedoch, dass je nachdem, wer Sie das Zertifikat von (Zwischen CA, Root-CA beteiligt oder nicht) erhalten oder wie die pfx erstellt / exportiert wird, manchmal könnten sie die Zertifikatskette fehlen. Nach dem Import, würden Sie ein Zertifikat von PrivateKeyEntry Typ, aber mit einer Kette mit einer Länge von 1

Um dies zu beheben, gibt es mehrere Optionen. Die einfachere Option in meinem Kopf ist die PFX-Datei im Internet Explorer zu importieren und exportieren (Auswahl die Möglichkeit, einschließlich aller Zertifikate in der Kette). Der Import und Export von Zertifikaten in IE sollte sehr einfach sein und auch an anderer Stelle dokumentiert.

Nach dem Export, Import der Schlüsselspeicher wie Justin oben erwähnt. Nun, würden Sie einen Schlüsselspeicher mit Zertifikat vom Typ PrivateKeyEntry haben und mit einem Zertifikat Kettenlänge von mehr als 1 ist.

Einige .Net basierten Web-Service-Clients Fehler aus (nicht in der Lage Vertrauensbeziehung aufzubauen), wenn Sie die oben nicht tun.

Wenn Sie mit JDK 1.5 oder unter dem Dienstprogramm keytool arbeiten nicht die -importkeystore Option (siehe JDK 1.5 keytool Dokumentation ) und die Lösung von MikeD werden nur durch die .pfx Übertragung auf einer Maschine mit einem neueren JDK (1.6 oder höher verfügbar).

Eine weitere Option in JDK 1.5 oder unten (wenn Sie Oracle WebLogic Produkt), ist den Anweisungen aus diesem Oracle-Dokument folgen: Verwendung von PFX und PEM-Zertifikat Formate mit Schlüsselspeicher . Es beschreibt die Umwandlung in .pem Format, wie Zertifikate Informationen aus diesem Textformat zu extrahieren und sie in .jks Format mit java utils.ImportPrivateKey Dienstprogramm importieren.

(dies ein Dienstprogramm mit WebLogic Produkt enthalten ist)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top