如何将SSL从Tomcat迁移到Apache HTTPD?

我正在将我的单个服务器tomcat迁移到集群,由HTTP HTTPD进行负载平衡和缓存(使用mod_proxy进行反向代理).
是否可以将证书和密钥转换为apache格式,或者我必须重新发布整个事情?
最佳答案
使用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可用的密码),因此请确保没有其他人可以读取它.

然后,使用SSLCertificateFileSSLCertificateKeyFile将Apache Httpd配置为分别指向证书文件和私钥文件.

转载注明原文:如何将SSL从Tomcat迁移到Apache HTTPD? - 代码日志