it-swarm.com.de

Import der PEM-Zertifikatkette und des Schlüssels zu Java Keystore

Es gibt viele Ressourcen zu diesem Thema, aber keine, die diesen etwas besonderen Fall abdeckt.

Ich habe 4 Dateien;

  • privatekey.pem
  • certificate.pem
  • intermediäre_rapidssl.pem
  • ca_geotrust_global.pem

Und ich möchte sie in einen neuen Keystore importieren.

Einige Websites empfehlen, das DER-Format zu verwenden und einzeln zu importieren. Dies ist jedoch fehlgeschlagen, da der Schlüssel nicht erkannt wird.

Eine andere Site schlug eine spezielle "ImportKey" -Klasse vor, die für den Import ausgeführt werden soll. Dies funktionierte, bis ich sah, dass die Kette gebrochen ist. Das heißt, Die Kettenlänge auf dem Zertifikat beträgt 1, wobei das Zwischenprodukt und ca.

Einige Websites schlagen PKCS7 vor, aber ich kann nicht einmal eine Kette daraus ziehen. Andere schlagen das PKCS12-Format vor, aber was meine Tests angeht, ist dies auch fehlgeschlagen, um die gesamte Kette zu erhalten.

Ratschläge oder Hinweise sind herzlich willkommen.

29
Trollbane

Dies mag nicht perfekt sein, aber ich hatte einige Hinweise zu meiner Verwendung von keytool, die ich für Ihr Szenario geändert habe.

  1. Importieren Sie ein Stammzertifikat oder ein Zwischenzertifizierungsstellenzertifikat in einen vorhandenen Java Keystore:

    keytool -import -trustcacerts -alias root -file ca_geotrust_global.pem -keystore yourkeystore.jks
    keytool -import -trustcacerts -alias root -file intermediate_rapidssl.pem -keystore yourkeystore.jks 
    
  2. Kombinieren Sie das Zertifikat und den privaten Schlüssel vor dem Import in einer Datei.

    cat certificate.pem privatekey.pem > combined.pem
    

    Dies sollte zu einer Datei führen, die dem folgenden Format ähnelt.

    BEGINN ZERTIFIKAT
    ...
    ENDZERTIFIKAT
    RSA PRIVATE KEY BEGINNEN
    ...
    END RSA PRIVATE KEY

  3. Importieren Sie ein signiertes Primärzertifikat und einen Schlüssel in einen vorhandenen Java Keystore:

    keytool -import -trustcacerts -alias yourdomain -file combined.pem -keystore yourkeystore.jks
    
27
Aaron Copley

Verketten Sie alle * .pem-Dateien wie all.pem zu einer PEM-Datei. Erstellen Sie dann einen Keystore im p12-Format mit dem privaten Schlüssel + all.pem

openssl pkcs12 -export -inkey private.key -in all.pem -name test -out test.p12

Exportieren Sie dann p12 in jks

keytool -importkeystore -srckeystore test.p12 -srcstoretype pkcs12 -destkeystore test.jks
47
senanqerib

keytool bietet keine Möglichkeit, Zertifikat + privaten Schlüssel aus einer einzelnen (kombinierten) Datei zu importieren, wie oben vorgeschlagen. Es läuft einwandfrei, aber nur das Zertifikat wird importiert, während der private Schlüssel ignoriert wird. Sie können dies mit keytool -list -v -keystore yourkeystore.jks Überprüfen - Ihr Domäneneintragstyp ist TrustedCertEntry, nicht PrivateKeyEntry.

Um das anfängliche Problem zu lösen, sollte zuerst ein PKCS # 12-Keystore mit openssl (oder einem ähnlichen Tool) erstellt und dann der Keystore mit keytool -importkeystore Importiert werden.

9
Ixmal