我不希望我的客户端与Apache Web服务器协商SSL连接,而是希望他们使用后面的Tomcat服务器。 我怎么能这样做?
我当前的httpd.confconfiguration是:
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上的stream量redirect到它的端口(8443)呢? 你可以用一个规则来做到这一点(用你的以太网接口replaceeth0):
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8443
如果你想/需要保持Apache的地方,我认为你需要在Apache协商ssl。 作为替代,如果你想在你的tomcat应用程序的前面,你可以使用haproxy或nginx – 他们将作为通用代理。