Como gerar o arquivo .key e .crt do arquivo JKS para o servidor httpd apache

11

Eu tenho apenas o arquivo mycert.jks . Agora eu preciso extrair e gerar o arquivo .key e .crt e usá-lo no servidor httpd apache.

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

Alguém pode listar todas as etapas para fazer isso? Eu procurei, mas não há nenhum exemplo concreto para entender, etapas mistas e combinadas.

Por favor, sugira!

[EDITAR] Obtendo erro após seguir as etapas abaixo da resposta.

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 
    
por Sohan 21.08.2015 / 16:34

2 respostas

16

Aqui está o que eu faço,

Primeiro, exporte a chave:

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

Para o arquivo de certificado do apache ssl, é necessário apenas o certificado:

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

Para o arquivo-chave ssl, você precisa apenas de chaves:

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

    
por 21.08.2015 / 18:15
19

.jks é um keystore, que é uma coisa Java

use o binário keytool de Java.

exporte o .crt :

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

converta o certificado para o PEM :

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

exporte a chave :

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

chave PKCS12 para o PEM não criptografado :

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

créditos:

por 21.08.2015 / 17:10