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

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

我有证书文件文件。现在我需要提取并生成.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 

答案1

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

使用密钥工具来自 Java 的二进制文件。

导出 .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

将 PKCS12 密钥转换为未加密的 PEM

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

致谢:

答案2

这是我的做法,

首先导出密钥:

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

答案3

在这里找到答案:

https://stackoverflow.com/questions/7580508/getting-chrome-to-accept-self-signed-localhost-certificate?page=2&tab=Votes

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

  • 在浏览器中使用 jks 的 url,用红线标记,左侧会出现一个锁符号

  • 点击不安全部分,会打开信息对话框

  • 单击证书(无效),打开后单击详细信息

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

最后,您将在 crt 中获得密钥库文件

答案4

从 jks 生成 crt、key 和 p12。

步骤 1: cd /opt/apps/users/app/scripts

步骤2: ./jks_to_pem.sh

步骤3:输入Keystore名称:(jks路径)

   /opt/apps/sha2certtools/certfiles/jks/kafkaAppIdentity.jks

步骤4:密码:

   ItaccatI ( after this asking key, just click on enter )

步骤5:在这里找到crt,key和p12

从 p12 生成 pem

步骤6:openssl pkcs12 -in kafkaAppIdentity.p12 -out kafkaAppIdentity.pem

相关内容