发布一个 Spring(不是引导)应用程序 运行 HTTPS
Release a Spring (not boot) application running with HTTPS
我尝试使用在 GitHub 上找到的 Spring application 与 Azure B2C 建立 SAML 连接。
在我 运行 在本地之前,一切都很好,但是当我需要在生产环境中测试这个应用程序时,我发现自己遇到了由于 HTTPS 连接引起的问题。
我的生产环境基于 AWS,我 运行 在反向代理中配置了一个 ECS 任务。我正在使用带有 HTTPS 侦听器和 HTTP 规则的负载平衡器以在 HTTPS 上重定向。
此应用程序基于 Spring,(不是 Spring 引导)并构建了一个 WAR 文件,我 运行 在 Tomcat 7.
当我尝试登录时,此应用程序尝试将 ALB 重定向到 HTTPS 的 HTTP 请求,但此重定向使我的 SAML 工作流程无效。
我尝试将 requires-channel="https"
添加到我的 securityContext.xml 中的任何 <security:intercept-url />
节点,但是当我尝试在线访问该应用程序时,我得到了一个 ERR_TOO_MANY_REDIRECTS
我需要配置 tomcat 并且此应用程序仅请求 HTTPS 而无需任何重定向,但我现在不知道如何
我最终分两步找到了解决方案。
第一步: 我将 Tomcat 配置修改为仅适用于 https。
在 server.xml 中,我添加了一个连接器以使用 TLS
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="conf/keystore.keystore"
keystoreType="JKS"
keystorePass="myStorePass"
keyPass="myPass" />
然后我删除了 8080 到 443 的重定向。找到带有 protocol="HTTP/1.1"
的节点连接器并将其删除。
第二步: 我将负载均衡器修改为仅在具有 443 端口的 HTTS 中工作。为此,我必须在我的集群上创建一个新的目标组和一个新的服务。
我尝试使用在 GitHub 上找到的 Spring application 与 Azure B2C 建立 SAML 连接。 在我 运行 在本地之前,一切都很好,但是当我需要在生产环境中测试这个应用程序时,我发现自己遇到了由于 HTTPS 连接引起的问题。
我的生产环境基于 AWS,我 运行 在反向代理中配置了一个 ECS 任务。我正在使用带有 HTTPS 侦听器和 HTTP 规则的负载平衡器以在 HTTPS 上重定向。
此应用程序基于 Spring,(不是 Spring 引导)并构建了一个 WAR 文件,我 运行 在 Tomcat 7.
当我尝试登录时,此应用程序尝试将 ALB 重定向到 HTTPS 的 HTTP 请求,但此重定向使我的 SAML 工作流程无效。
我尝试将 requires-channel="https"
添加到我的 securityContext.xml 中的任何 <security:intercept-url />
节点,但是当我尝试在线访问该应用程序时,我得到了一个 ERR_TOO_MANY_REDIRECTS
我需要配置 tomcat 并且此应用程序仅请求 HTTPS 而无需任何重定向,但我现在不知道如何
我最终分两步找到了解决方案。
第一步: 我将 Tomcat 配置修改为仅适用于 https。
在 server.xml 中,我添加了一个连接器以使用 TLS
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="conf/keystore.keystore"
keystoreType="JKS"
keystorePass="myStorePass"
keyPass="myPass" />
然后我删除了 8080 到 443 的重定向。找到带有 protocol="HTTP/1.1"
的节点连接器并将其删除。
第二步: 我将负载均衡器修改为仅在具有 443 端口的 HTTS 中工作。为此,我必须在我的集群上创建一个新的目标组和一个新的服务。