我有证书文件文件。现在我需要提取并生成.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
致谢:
- 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
答案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
在这里找到答案:
它展示了如何在 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