我遇到了SSL,Load Balancer和Tomcat的问题。 我有一个tomcat实例,在8080端口上运行,可以访问并且工作正常。 我的应用程序位于 SPRING 框架上,它会切换到HTTPS以获取某些安全页面[如帐户/结帐等] 在tomcat上运行的安全端口是8443。 对于独立的tomcat服务器,一切都按预期工作,安全和非安全页面之间的切换工作正常。
我的目标:我希望负载均衡器处理所有SSL内容,这样我就不必在各个tomcat服务器上配置SSL。
我的内容:我购买了SSL证书,并在AWS Elastic Load Balancer上配置了证书,并添加了我的tomcat实例。 我的监听器以这种方式配置: - 1. HTTP 80 - > HTTP 8080 2. HTTPS 443 - > HTTP 8443 [在此处将SSL证书添加到负载均衡器]
TOMCAT 8080端口配置
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
现在,我可以使用负载均衡器访问我的应用程序。
问题: 当我转到安全页面时,应用程序无法按预期运行。我已经尝试了下面的tomcat配置,我可以访问安全页面,但会话变得无效。 关于我在这里缺少什么的任何指示?
<Connector
port="8443"
sslProtocol="HTTP/1.1"
scheme="https"
secure="true"
connectionTimeout="20000"
URIEncoding="UTF-8"
proxyPort="443"
/>
答案 0 :(得分:0)
找到解决方案。在我的server.xml中添加了以下内容
非SSL端口
<Connector
port="8080"
connectionTimeout="20000"
redirectPort="443"
proxyPort="80"
proxyName="<my-website-url>" />
SSL端口
<Connector
port="8443"
scheme="https"
secure="true"
clientAuth="false"
sslProtocol="TLS"
connectionTimeout="20000"
URIEncoding="UTF-8"
proxyName="<my-website-name>
proxyPort="443"
/>