如何从httpd apache服务器的JKS文件生成.key和.crt文件


19

我只有mycert.jks文件。现在,我需要提取并生成.key和.crt文件,并在apache httpd服务器中使用它。

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

任何人都可以列出完成此操作的所有步骤。我进行了搜索,但是没有具体示例可以理解,混合和匹配步骤。

请提出建议!

[编辑] 从下面的答案中按照以下步骤操作后出现错误。

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 

Answers:


29

.jks是密钥库,这是Java东西

使用Java的keytool二进制文件。

导出.crt

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

将证书转换为PEM

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

导出密钥

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

未加密PEM的Concert PKCS12密钥

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

学分:


无法

导出的证书为DER格式。添加了将其转换为PEM的步骤
2015年

thnx,那可能行得通,但我还没有尝试过
Sohan,2015年

keytool -exportcert -rfc以PEM格式写入,不需要转换。或者,一旦有了p12,就用PEM openssl pkcs12 -nokeys编写整个证书,如果此证书来自真实的CA而不是keytool-default自签名证书,则通常更适合使用OpenSSL的服务器(如httpd)。
dave_thompson_085

1
注意:如果您知道导出证书时的名称,则别名可以是证书的名称。想要提及的是,如果人们在努力执行第一条命令。
GM Lucid

19

这是我的工作

首先导出密钥:

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

对于apache ssl证书文件,您仅需要证书:

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

对于ssl密钥文件,您只需要密钥:

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


0

在这里找到答案:

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

它显示了如何在Windows上的Chrome中从jks密钥库文件创建crt:

  • 转到使用带有红线的jks的浏览器中的网址,左侧将显示一个锁定符号

  • 通过单击不安全的部分,将打开信息对话框

  • 单击证书(无效),当其打开时,单击“详细信息”

  • 按复制到文件...并按照说明进行操作

最后,您在crt中有密钥库文件

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.