【问题标题】:Generate a java keystore (for jetty) from standard apache ssl certs从标准 apache ssl 证书生成 java 密钥库(用于码头)
【发布时间】:2012-10-31 05:54:00
【问题描述】:
从 Apache2 的 mod_ssl 我有以下可用的配置文件:
SSLCertificateFile x (certificate)
SSLCertificateKeyFile y (rsa private key)
SSLCertificateChainFile z.crt
从这些文件中,我想生成一个 Java 密钥库,可以将其传递到码头以进行 SSL。我做了很多阅读,但我对我在这里实际拥有的内容以及将这些文件转换为密钥库需要哪些步骤感到困惑。
【问题讨论】:
标签:
java
apache
ssl
keystore
【解决方案1】:
您不能将私钥直接导入密钥库。但是您可以使用 openssl 将密钥和证书转换为 pkcs#12 存储。然后,您可以使用选项-importkeystore 和选项-srcstoretype pkcs12 一起将整个pkcs#12 导入到默认的java 密钥库中。
(也可以通过提供storetype 'pkcs12'直接使用pkcs12 store)
【解决方案2】:
假设您想使用别名“domain.com”将密钥和证书存储在密钥库中,您可以使用以下命令完成工作:
keytool -keystore keystore.jks -import -alias root -file z.crt -trustcacerts
这将导入您的根证书(或链文件)。然后你可以导入你的证书:
keytool -keystore keystore.jks -import -alias domain.com -file x -trustcacerts
最后,使用 openssl 工具将私钥转换为 pkcs12,并导入到 keystore 中。
openssl pkcs12 -export -in x -inkey y -out domain.pkcs12
keytool -importkeystore -srckeystore domain.pkcs12 -srcstoretype PKCS12 -destkeystore domain.com