从JKS密钥库中提取密钥以与apache2和tomcat一起使用

我有一个JKS格式的密钥库,我想用apache2。 我怎样才能以简单的方式将密钥和证书(我已经链接)从JKS中导出? 我发现有很多答案,但似乎没有人有我的问题…(或答案是部分)

感谢您的时间。

JKS在DER中有证书,对于Apache,您想要有PEM(AKA X509)格式。

如何做到这一点的示例:

$JAVA_HOME/bin/keytool --list -keystore <mykeystore> $JAVA_HOME/bin/keytool -export -rfc -alias <alias_name> -file <cert.crt> -keystore <mykeystore> 

所以你会想要导出私钥然后导出证书。

然后导出的私钥进入httpd.conf中的SSLCertificateKeyFile指令,并且可以将链接的证书放在SSLCertificateChainFile指令中。 这是SSLCertificateFile指令的补充。

请参阅http://httpd.apache.org/docs/2.2/mod/mod_ssl.html

没有办法“直接”导出证书以外的任何东西。 您将需要经过PKCS12格式的中间步骤。

 keytool -importkeystore -srckeystore rec.jks -destkeystore rec.p12 -deststoretype PKCS12 

这将提示input源和目标密码。 如果需要自动执行此操作,请使用PW=somepass keytool -srcpass:env PW ...keytool -srcstorepass:file filecontainingpass ... ,并且类似地为-deststorepass

从那里,您可以使用openssl将PKCS12文件转换为标准的PEM:

 openssl pkcs12 -in rec.p12 -out rec.pem 

这也会提示input密码。 使用-passin env:PW-passin file:filename-passout选项,或者-nodes如果你不想要encryption的结果密钥,但要小心你写的地方。

生成的文件将包含您的密钥,证书,并可能包含完整的证书链。