So generieren Sie eine .key- und .crt-Datei aus einer JKS-Datei für einen httpd-Apache-Server

19

Ich habe nur die Datei mycert.jks . Jetzt muss ich extrahieren und generieren .key und .crt- Datei und verwenden Sie es in Apache HTTPD-Server.

SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt 
SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key 

Kann jemand alle Schritte auflisten, um dies zu erreichen. Ich habe gesucht, aber es gibt kein konkretes Beispiel, um Schritte zu verstehen, zu mischen und zu vergleichen.

Bitte vorschlagen!

[BEARBEITEN] Fehler nach folgenden Schritten von unten beantworten.

8/‎21/‎2015 9:07 PM] Sohan Bafna: 
    [Fri Aug 21 15:32:03.008511 2015] [ssl:emerg] [pid 14:tid 140151694997376] AH02562: Failed to configure certificate 0.0.0.0:4545:0 (with chain), check /home/certs/smp_c
    ert_key_store.crt
    [Fri Aug 21 15:32:03.008913 2015] [ssl:emerg] [pid 14:tid 140151694997376] SSL Library Error: error:0906D06C:PEM routines:PEM_read_bio:no start line (Expecting: TRUSTED
     CERTIFICATE) -- Bad file contents or format - or even just a forgotten SSLCertificateKeyFile?
    [Fri Aug 21 15:32:03.008959 2015] [ssl:emerg] [pid 14:tid 140151694997376] SSL Library Error: error:140DC009:SSL routines:SSL_CTX_use_certificate_chain_file:PEM lib 
Sohan
quelle

Antworten:

29

.jks ist ein Keystore, bei dem es sich um eine Java-Sache handelt

benutze keytool binary aus Java.

exportiere die .crt :

keytool -export -alias mydomain -file mydomain.der -keystore mycert.jks

Konvertieren Sie das Zertifikat in PEM :

openssl x509 -inform der -in mydomain.der -out certificate.pem

Exportiere den Schlüssel :

keytool -importkeystore -srckeystore mycert.jks -destkeystore keystore.p12 -deststoretype PKCS12

Konzert PKCS12-Schlüssel zu unverschlüsseltem PEM :

openssl pkcs12 -in keystore.p12  -nodes -nocerts -out mydomain.key

Credits:

exeral
quelle
Nicht funktioniert, bekommen Fehler
Sohan
Das exportierte Zertifikat ist im DER-Format. Es wurde ein Schritt hinzugefügt, um es in PEM umzuwandeln
exeral
Danke, das könnte funktionieren, ich habe es aber noch nicht versucht
Sohan
keytool -exportcert -rfcschreibt im PEM-Format und benötigt keine Konvertierung. Alternativ , wenn Sie die p12 haben, openssl pkcs12 -nokeysschreibt die gesamte cert Kette in PEM, die für einen Server in der Regel besser ist , mit OpenSSL (wie httpd) , wenn diese cert von einem echten CA ist eher als die keytool-default selbst signiertes Zertifikat.
Dave_thompson_085
1
Hinweis: Der Alias ​​kann der Name des Zertifikats sein, wenn Sie wissen, wie der Name war, als es exportiert wurde. Wollte erwähnen, dass für den Fall, dass die Leute Schwierigkeiten hatten, den ersten Befehl auszuführen.
GM Lucid
19

Hier ist was ich tue,

Exportieren Sie zuerst den Schlüssel:

keytool -importkeystore -srckeystore mycert.jks -destkeystore keystore.p12 -deststoretype PKCS12

Für die Apache SSL-Zertifikatsdatei benötigen Sie nur ein Zertifikat:

openssl pkcs12 -in keystore.p12 -nokeys -out my_key_store.crt

Für die SSL-Schlüsseldatei benötigen Sie nur Schlüssel:

openssl pkcs12 -in keystore.p12 -nocerts -nodes -out my_store.key

Sohan
quelle
0

Antwort hier gefunden:

/programming/7580508/getting-chrome-to-accept-self-signed-localhost-certificate?page=2&tab=Votes

Es wurde gezeigt, wie in Chrome unter Windows aus einer JKS-Keystore-Datei ein CRT erstellt wird:

  • Gehen Sie zu der URL im Browser, die JKS mit der roten Linie verwendet, und links befindet sich ein Schlosssymbol

  • durch Anklicken des nicht sicheren Teils öffnet sich der Informationsdialog

  • Klicken Sie auf Zertifikat (ungültig) und klicken Sie beim Öffnen auf Details

  • drücke auf copy to file ... und folge den Anweisungen

Am Ende haben Sie Keystore-Datei in CRT

Zeghra
quelle