Ssl

如何從 JKS 文件為 httpd apache 伺服器生成 .key 和 .crt 文件

  • November 8, 2021

我只有mycert.jks文件。現在我需要提取並生成**.key 和 .crt**文件並在 apache httpd 伺服器中使用它。

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

任何人都可以列出完成此操作的所有步驟。我搜尋了但沒有具體的例子可以理解,混合和匹配的步驟。

請建議!

$$ EDIT $$ 按照以下答案中的步驟操作後出現錯誤。

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 

這就是我所做的,

首先導出密鑰:

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

.jks 是一個keystore,這是一個 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

將 PKCS12 密鑰轉換為未加密的 PEM

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

學分:

引用自:https://serverfault.com/questions/715827