【问题标题】:Tomcat SSL Redirection for External IPs Only仅限外部 IP 的 Tomcat SSL 重定向
【发布时间】:2018-02-03 20:33:05
【问题描述】:

我无法正确设置 tomcat 重定向。我正在尝试为 webapp 设置 tomcat,目前我拥有它,以便所有对端口 8080 的请求都被重定向到 8443 上的 SSL 端口。这对于任何外部连接的人都很好。它也适用于任何内部连接的人,只要他们使用域名而不是本地 IP。

问题是我有一些实用程序需要通过 LAN 连接到这个 webapp。目前他们都是通过与 localIP:8080 通信来实现的。当 tomcat 重定向发生时,它们被重定向到 https://localIP:8443 并遇到无效证书问题。

我想知道是否可以将来自外部 IP 的所有请求重定向到 SSL,并允许 LAN IP 连接到非 SSL 端口 8080。

服务器.xml

<Connector port="8080" protocol="HTTP/1.1"
           address="0.0.0.0"
               connectionTimeout="20000"
               redirectPort="8443" />

web.xml

<security-constraint>
    <web-resource-collection>
        <web-resource-name>App_nmae</web-resource-name>
        <url-pattern>/*</url-pattern>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
    </web-resource-collection>

    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

【问题讨论】:

    标签: java tomcat ssl redirect


    【解决方案1】:

    几个想法:

    1. 始终为服务使用正确的主机名,并照常允许 TLS。这将是 IMO 的最佳做法。
    2. 修复客户端,因为您拥有完全的控制权。只要证书(否则)有效,就让他们忽略主机名不匹配。这有点小技巧,但应该很容易完成。
    3. 设置一个额外的连接器,通过手动魔术修复所有问题,并将您的“受信任”应用程序指向http://localIP:8081:

      &lt;Connector port="8081" secure="true" /&gt;

    现在,限制对该端口的访问很重要。最好的方法可能是使用防火墙,但您可以通过在配置中添加 RemoveAddressFilter 来提高安全性。

    【讨论】:

      猜你喜欢
      • 2020-08-03
      • 2017-04-10
      • 2018-10-12
      • 1970-01-01
      • 2016-12-18
      • 1970-01-01
      • 1970-01-01
      • 2014-11-26
      • 1970-01-01
      相关资源
      最近更新 更多