我正在将我的单个服务器tomcat迁移到集群,由HTTP HTTPD进行负载平衡和缓存(使用mod_proxy进行反向代理)。 是否可以将证书和密钥转换为apache格式,或者我必须重新发布整个内容?
答案 0 :(得分:23)
使用keytool
直接提取证书非常容易,提取私钥有点棘手(尽管您可以编写程序来执行此操作)。我建议使用keytool
和openssl
的组合。
如果您的密钥库是PKCS#12格式(.p12文件),请跳过此步骤。使用keytool
将您的JKS存储转换为PKCS12存储(需要Java 6 +版本)
keytool -importkeystore -srckeystore thekeystore.jks \
-srcstoretype JKS \
-destkeystore thekeystore.p12 \
-deststoretype PKCS12
然后,使用openssl:
提取证书openssl pkcs12 -in thekeystore.p12 -clcerts -nokeys -out servercert.pem
提取私钥:
umask 0077
openssl pkcs12 -in thekeystore.p12 -nocerts -nodes -out serverkey.pem
umask 0022
请注意,因为在提取私钥时使用了-nodes
选项,所以私钥文件将不受保护(因为它不能具有Apache Httpd可用的密码),所以make确定没有人能读懂它。
然后,使用SSLCertificateFile
和SSLCertificateKeyFile
配置Apache Httpd,分别指向证书文件和私钥文件。