Wie man PFX-Datei in Keystore mit privatem Schlüssel umwandelt?
Ich muss signieren Android-Anwendung (.apk
).
Ich habe .pfx
- Datei. Ich baute es zu .cer
Datei mit dem Internet Explorer und dann in .cer
zu .keystore
mithilfe von keytool. Dann habe ich versucht, zu unterzeichnen .apk
mit jarsigner, aber es sagt, dass .keystore nicht Inhalt eines privaten Schlüssels.
Was ich falsch mache?
InformationsquelleAutor der Frage Ola | 2010-11-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit dem JDK 1.6 oder höher
Es wurde darauf hingewiesen, von Justin unten in den Kommentaren, dass keytool allein dazu fähig ist, dies zu tun, verwenden Sie den folgenden Befehl (obwohl nur im JDK 1.6 und höher):
Mit dem JDK 1.5 oder unten
OpenSSL können es alle tun. Diese Antwort auf JGuru ist die beste Methode, die ich bisher gefunden habe.
Erstens stellen Sie sicher, dass Sie OpenSSL installiert. Viele Betriebssysteme bereits installiert haben, da ich mit Mac OS X.
Den beiden folgenden Befehle wandeln die pfx-Datei in ein format, das geöffnet werden kann, wie eine Java-PKCS12-Schlüsselspeicher:
BEACHTEN Sie, dass der angegebene name im zweiten Befehl wird der alias, den Ihr Schlüssel in den neuen Schlüssel speichern.
Können Sie überprüfen Sie den Inhalt der Keystore mit dem Java-keytool-Dienstprogramm mit dem folgenden Befehl:
Schließlich, wenn Sie müssen, können Sie wandeln diese in einen JKS-Schlüsselspeicher, indem Sie den Import der Schlüssel store erstellt (siehe oben) in einem neuen Schlüssel speichern:
InformationsquelleAutor der Antwort MikeD
jarsigner können Sie Ihre pfx-Datei als Schlüsselspeicher für das signieren von jar. Werden Sie sicher, dass Sie Ihre pfx-Datei den privaten Schlüssel und die cert-Kette, wenn Sie es exportieren. Es gibt keine Notwendigkeit, zu konvertieren in andere Formate. Der trick ist, zu erhalten, die Alias Ihrer pfx-Datei:
Sobald Sie haben Ihre alias-Signatur ist einfach
Die beiden oben genannten Befehle werden Sie aufgefordert, das Passwort, das Sie angegeben pfx exportieren. Wenn Sie wollen, um Ihr Passwort hängen in klar text die -storepass wechseln, bevor die -keystore Schalter
Einmal unterzeichnet, bewundere Ihre Arbeit:
InformationsquelleAutor der Antwort gjpc
Fand ich diese Seite, die Ihnen sagt, wie Sie zu importieren einer PFX-zu JKS (Java Key Store):
InformationsquelleAutor der Antwort kaptan
Ihre PFX-Datei sollte enthalten den privaten Schlüssel. Exportieren Sie den privaten Schlüssel und das Zertifikat direkt aus Ihrer PFX-Datei (z.B. mit OpenSSL) und importieren Sie Sie in Ihre Java-keystore.
Bearbeiten
Weitere Informationen:
openssl pkcs12 -in filename.pfx -nocerts -out key.pem
openssl pkcs12 -in filename.pfx -clcerts -nokeys -out cert.pem
keytool
.InformationsquelleAutor der Antwort Bernard
Justin(oben) ist korrekt. Beachten Sie jedoch, dass je nachdem, wer Sie bekommen Sie das Zertifikat aus (intermediate CA -, root-CA beteiligt ist oder nicht) oder wie die pfx erstellt/exportiert werden, manchmal werden Sie auch fehlen die Zertifikat-Kette. Nach dem Import haben Sie ein Zertifikat von PrivateKeyEntry Typ, aber mit einer Kette der Länge 1.
Um dies zu beheben, gibt es mehrere Möglichkeiten. Die einfachere Variante ist meiner Meinung nach zu importieren und zu exportieren pfx-Datei im Internet Explorer(Auswahl der option alle Zertifikate in der Kette). Der import und export von Zertifikaten im IE sollte sehr einfach und gut dokumentiert anderswo.
Sobald Sie einmal exportiert ist, importieren Sie die keystore als Justin spitz oben.
Nun, würden Sie haben einen keystore mit Zertifikat von Art PrivateKeyEntry und mit eine Zertifikat-Kette Länge von mehr als 1.
Bestimmte .Net-basierte Web-service-clients Fehler aus(kann nicht Vertrauen schaffen, Beziehung), wenn Sie nicht die oben genannten.
InformationsquelleAutor der Antwort TechIsFun
Wenn Sie die Arbeit mit dem JDK 1.5 oder unter der keytool-Dienstprogramm nicht die
-importkeystore
option (siehe JDK 1.5 keytool-Dokumentation) und die Lösung von Mike D. werden nur durch die übertragung der.pfx
auf einem Rechner mit einem neueren JDK (1.6 oder höher).Weitere option in JDK 1.5 oder unten (wenn Sie Oracle WebLogic Produkt), ist Folgen Sie den Anweisungen aus dem Oracle-Dokument: Mit PFX und PEM Zertifikat-Formate mit Keystores.
Es beschreibt die Umwandlung in
.pem
format, wie zum extrahieren von Zertifikaten, Informationen aus dieser textuellen format, und importieren Sie es in.jks
format mitjava utils.ImportPrivateKey
utility (Dienstprogramm im Lieferumfang von WebLogic Produkt).InformationsquelleAutor der Antwort Mariano Paniga