2016-05-18 33 views
1

Momentan habe ich eine der Datei und eine private Datei, aber derzeit kann ich keine ordnungsgemäße Dokumentation, die mir erlaubt, eine JKS Keystore-Datei basierend auf der und meine erstellen Privat Schlüssel.Erstellen eines Keystore mit einer signierten Datei und einem privaten Schlüssel

Was ich bisher versucht:

erstellen pkcs12 Datei:

openssl pkcs12 -export -in received_ca_cert.der -inkey mykey.key -certfile received_ca_cert.der -out test-keystore.p12 

Fehlermeldung:

unable to load certificates 

Ich glaube, dass das Problem behoben ist, ich etwas verwenden sollten wie:

keytool -importkeystore -srckeystore test-keystore.p12 -srcstoretype pkcs12 -destkeystore test-keystore.jks -deststoretype JKS 

Vielen Dank im Voraus.

Antwort

2

pkcs12 -export erfordert alle seine Eingabedateien - privater Schlüssel und ein oder mehrere Zertifikate - im PEM-Format (wie von OpenSSL definiert/erweitert, da das eigentliche PEM vor zwei Jahrzehnten dies nicht abgedeckt hat). Konvertieren eines Zertifikats von DER PEM mit:

openssl x509 -in certfile.der -inform DER -out certfile.pem 
# you can specify -outform PEM but it's the default and hence unneeded 

AUCH: Sie sollten nicht das gleiche Zertifikat wie -in und -certfile angeben. -in sollte das Zertifikat sein, das dem privaten Schlüssel entspricht. Wenn es ein anderes cert oder certs gibt, einschließlich, aber nicht beschränkt auf Kette cert (s), die Sie einschließen möchten, das ist, was -certfile ist. Ob solche "Extra" -Zertifikate notwendig oder wünschenswert sind, hängt davon ab, wie Ihr Zertifikat ausgestellt wurde, und in gewissem Maße, wer/was Sie bestätigen müssen, was Sie in Ihrer Frage nicht einmal angedeutet haben.

Beachten Sie, dass, wenn Sie die Kette certs in Ihrem Trusts haben, entweder die Standard-eins oder eins Sie mit -CAfile angeben und/oder -CApath, Sie -chain und OpenSSL finden automatisch angeben/wählen die benötigten Kette certs für Sie; Dies kann einfacher sein als manuell zu entscheiden, was in -certfile geht.

Und in ähnlicher Weise müssen Sie nicht -deststoretype jks zu keytool angeben, weil es die Standardeinstellung ist.

+0

Vielen Dank für Ihr Feedback, aber das Hauptproblem, das wir gerade haben, ist, dass unsere Integrationsplattform nur Dateien in DER akzeptiert, nicht in PEM. –