绕过 apache SSL 并改用 tomcat

绕过 apache SSL 并改用 tomcat

我不希望我的客户端与 Apache Web 服务器协商 SSL 连接,而是希望它们与其背后的 tomcat 服务器协商。我该怎么做?

我当前的httpd.conf配置是:

Listen 443 https
SSLProxyEngine On
ProxyPass / https://localhost:8443/
ProxyPassReverse / https://localhost:8443/
<VirtualHost _default_:443>
  SSLProxyEngine On
  ProxyPass / https://localhost:8443/
  ProxyPassReverse / https://localhost:8443/
  SSLEngine On
  SSLProtocol all -SSLv2
  SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA
  SSLCertificateFile /etc/pki/tls/certs/localhost.crt
  SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
</VirtualHost>

它可以工作,但不是我想要的。似乎客户端正在与 apache 协商,而 apache web 服务器正在与 tomcat 协商。(我看到的是 apache web 服务器自签名证书)

答案1

我认为您无法在 tomcat 前面使用 apache 做您想做的事情。如果您希望 tomcat 处理 SSL 协商,为什么不直接使用 iptables 将 443 上的流量重定向到其端口 (8443)?您可以使用以下规则来做到这一点(将 eth0 替换为您的以太网接口):

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8443

如果您想要/需要保留 apache,我认为您需要在 apache 中协商 ssl。或者,如果您想要在 tomcat 应用程序前面添加某些东西,您可以使用 haproxy 或 nginx - 它们将作为通用代理工作。

相关内容