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

标签 apache tomcat ssl

我正在将我的单服务器 tomcat 迁移到一个集群,由 Apache HTTPD(使用 mod_proxy 的反向代理)进行负载平衡和缓存。 是否可以将证书和 key 转换为 Apache 格式,或者我必须重新颁发整个文件?

最佳答案

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

如果您的 keystore 采用 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分别指向证书文件和私钥文件。

关于apache - 我如何将 SSL 从 Tomcat 迁移到 Apache HTTPD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3730236/

相关文章:

apache - 如何让 apache 将 Web 服务请求转发给 tomcat?

java - Apache Commons JXPath 搜索在 XPath 搜索期间是否编码对象?

ssl - 在 Cpanel 上添加重定向 (301) 规则以强制 ssl 时出错

SSL SAN 证书无法解析备用名称

apache - Win 8.1 上的 XAMPP 安装带有 UAC 警告

java.lang.NoClassDefFoundError : Lorg/springframework/web/multipart/MultipartResolver; 错误

java - tomcat dbcp _closed PoolableConnection 但处于已分配状态

html 文件的 <head> 中的 Javascript 不起作用

qt - 应用程序在 GDB 中崩溃但在正常运行时不会崩溃,在 libcrypto 中发生崩溃

apache - mod_rewrite urlencoding 一个已经 urlencoded 的查询字符串参数 - 有什么方法可以禁用它吗?