Come generare file .key e .crt dal file JKS per il server apache httpd


19

Ho solo il file mycert.jks . Ora ho bisogno di estrarre e generare file .key e .crt e usarlo nel server httpd di apache.

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

Qualcuno può elencare tutti i passaggi per farlo. Ho cercato ma non esiste un esempio concreto per comprendere, mescolare e abbinare i passaggi.

Per favore, suggerisci!

[MODIFICA] Errore dopo aver seguito i passaggi dalla risposta in basso.

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 

Risposte:


29

.jks è un keystore, che è una cosa Java

usa keytool binario da Java.

esportare il .crt :

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

converti il ​​certificato in PEM :

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

esporta la chiave :

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

chiave concerto PKCS12 per PEM non crittografato :

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

titoli di coda:


Non funziona, ricevendo errore
Sohan,

il certificato esportato è in formato DER. aggiunto un passaggio per convertirlo in PEM
exeral

grazie, potrebbe funzionare, ma non ho ancora provato
Sohan,

keytool -exportcert -rfcscrive in formato PEM e non necessita di conversione. In alternativa, una volta che hai la p12, openssl pkcs12 -nokeysscrive l'intera catena di certificati in PEM, che di solito è meglio per un server che utilizza OpenSSL (come httpd) se questo certificato proviene da una CA reale anziché dal certificato autofirmato predefinito keytool.
dave_thompson_085,

1
nota: l'alias può essere il nome del certificato, se si conosce il nome al momento dell'esportazione. Volevo menzionare che nel caso in cui le persone facessero fatica a eseguire il primo comando.
GM Lucid,

19

Ecco cosa faccio

Per prima cosa esporta la chiave:

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

Per il file del certificato ssl di apache è necessario solo il certificato:

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

Per il file chiave ssl sono necessarie solo le chiavi:

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


0

Risposta trovata qui:

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

Ha mostrato come creare crt dal file keystore jks in Chrome su Windows:

  • vai all'URL nel browser che utilizza jks con la linea rossa e ci sarà un simbolo di blocco a sinistra

  • facendo clic sulla parte non sicura, si apre la finestra di dialogo delle informazioni

  • fai clic sul certificato (non valido) e quando si apre fai clic su Dettagli

  • premi su copia su file ... e segui le istruzioni

Alla fine hai il file keystore in crt

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.