我不希望我的客户与 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 服务器自签名证书)
我不认为你可以在tomcat前面用apache做你想做的事。如果您希望 tomcat 处理 ssl 协商,为什么不使用 iptables 将 443 上的流量重定向到其端口(8443)?您可以使用以下规则来做到这一点(用您的以太网接口替换 eth0):
如果您想/需要保留 apache,我认为您需要在 apache 中协商 ssl。作为替代方案,如果你想在你的 tomcat 应用程序前面有一些东西,你可以使用 haproxy 或 nginx - 它们将作为通用代理工作。