一尘不染

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

tomcat

我正在将我的单服务器tomcat迁移到集群,并通过Apache
HTTPD(带有mod_proxy的反向代理)进行负载均衡和缓存。是否可以将证书和密钥转换为apache格式,或者我必须重新发行整个文件?


阅读 206

收藏
2020-06-16

共1个答案

一尘不染

直接使用提取证书非常容易,提取keytool私钥比较麻烦(尽管您可以编写程序来这样做)。我建议结合使用keytoolopenssl

如果您的密钥库为PKCS#12格式(.p12文件),请跳过此步骤。使用keytool(从Java 6+开始的需要版本)将JKS存储转换为PKCS12存储

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使用),因此请确保没有其他人可以读取它。

然后,使用SSLCertificateFile和配置Apache
Httpd
SSLCertificateKeyFile分别指向证书文件和私钥文件。

2020-06-16