chr*_*ris 10 java proxy spring tomcat amazon-web-services
我们正在将一个旧的java/spring应用程序移动到AWS中,因此它位于AWS Application Load Balancer之后.Tomcat直接在端口8080上的负载平衡器后面运行,我们在负载均衡器和tomcat之间使用HTTP.
问题是在这种情况下,spring安全模块无法识别连接是否安全.
我可以通过配置连接来解决此问题:
<Connector port="8080"
protocol="HTTP/1.1"
connectionTimeout="20000"
proxyName="single-host.example.com"
secure="true"
scheme="https"
redirectPort="443"
proxyPort="443" />
Run Code Online (Sandbox Code Playgroud)
适用于单个主机名.但是,我需要这可以跨多个主机名工作.
我试过跳过代理并添加:
server.tomcat.remote_ip_header=X-Forwarded-For
server.tomcat.protocol_header=X-Forwarded-Proto
Run Code Online (Sandbox Code Playgroud)
但这似乎没有任何区别.
有没有办法在这种情况下支持多个主机名?
小智 1
您应该在 LB 上设置 HTTPS 连接,然后您将在 LB 和 tomcat 之间建立正确的 TLS 连接,这样 spring 就会停止哭泣。您只需向 LB 提供自签名证书,并使用生成此自签名证书的私钥设置 Spring Security 模块。
(更复杂的选项:正确设置 tomcat 代理,强制其将 LB 的 HTTP 流封装在 HTTPS 流中。在代理中设置所有 TLS 要求:证书、私钥...)
| 归档时间: |
|
| 查看次数: |
1992 次 |
| 最近记录: |