Ssl
如何從 JKS 文件為 httpd apache 伺服器生成 .key 和 .crt 文件
我只有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://security.stackexchange.com/questions/3779/how-can-i-export-my-private-key-from-a-java-keytool-keystore
- https://stackoverflow.com/questions/2640691/how-to-export-private-key-from-a-keystore-of-self-signed-certificate
- https://www.sslshopper.com/article-most-common-java-keytool-keystore-commands.html