2014-01-15 11 views
21

Mit openssl, ich habe einen privaten Schlüssel wie folgt erstellt:eine P12-Datei erstellen

openssl genrsa -out myKey.pem 

Dann wird die csr verlangte von der CA zu erzeugen, ich folgendes ausgeführt haben:

openssl req -new -key myKey.pem -out cert.csr 

Die CA reagierte mit einem Zertifikat, das ich in einer Datei gespeichert namens myCert.cer

ich würde jetzt die notwendigen Komponenten (private Schlüssel, öffentlichen Schlüssel gerne bündeln (?) und cert in eine einzige .p12. Um dies zu tun habe ich laufen die folgenden:

openssl pkcs12 -export -out keyStore.p12 -inkey myKey.pem -in myCert.cer 

aber ich erhalte die folgende Fehlermeldung:

No certificate matches private key 

Wie kann ich das erreichen?

+6

Btw, wenn jemand die 'cert.csr zu unterzeichnen 'selbst, dann könnte man' openssl x509 -req -in cert.csr -signkey key.pem -out cert.crt' und dann 'openssl pkcs12 -export -in cert.crt -inkey key.pem -out cert.p12 verwenden '. Keine Notwendigkeit, den zusätzlichen Befehl aus der Antwort zu verwenden. – Tom

+0

@Tom Danke, dein Kommentar hat mein Problem gelöst. –

Antwort

22

Die openssldocumentation sagt, dass als -in Argument geliefert Datei in PEM Format sein muss.

Es stellte sich heraus, dass entgegen der Bedienungsanleitung des CA, das Zertifikat von der CA, die ich in myCert.cer gespeichert zurückgekehrt ist nicht PEM Format eher ist es PKCS7.

Um meine .p12 zu schaffen, musste ich zuerst das Zertifikat PEM umwandeln:

openssl pkcs7 -in myCert.cer -print_certs -out certs.pem 

und führen

openssl pkcs12 -export -out keyStore.p12 -inkey myKey.pem -in certs.pem 
+6

Was ist "myKey.pem"? Welche Datei ist das? – Rodniko

+0

Das ist derjenige, der den privaten Schlüssel hat; Siehe den Anfang der Frage. –

+1

Beste Erklärung Schritt für Schritt zum Erstellen einer P12-Datei. Danke dafür! – raspayu