【问题标题】:HTTPS on WildFly - Redirecting from HTTPWildFly 上的 HTTPS - 从 HTTP 重定向
【发布时间】:2015-04-20 20:26:42
【问题描述】:

我的应用程序在 WildFly 8.2 上运行,并且应该完全使用 HTTPS。

为此,在 web.xml 上,我有

<security-constraint>
    <web-resource-collection>
        <web-resource-name>App</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

然后,在standalone.xml 我有,

        <server name="default-server">
            <http-listener name="http-default" socket-binding="http"/>
            <https-listener name="https-default" socket-binding="https" security-realm="SSLRealm"/>
            <host name="http-default" alias="localhost" default-web-module="sp.war">
                <filter-ref name="server-header"/>
                <filter-ref name="x-powered-by-header"/>
            </host>
            <host name="https-default" alias="sponline.tdata.com" default-web-module="sp.war">
            </host>             
        </server>

        <security-realm name="SSLRealm">
            <server-identities>
                <ssl>
                    <keystore path="sponline_keystore.jks" relative-to="jboss.server.config.dir" keystore-password="sponline2015" alias="sponline" key-password="GxXxXXxX"/>
                </ssl>
            </server-identities>
        </security-realm>

现在,服务器绑定了 2 个域名 - HQDATADEV.TDATA.COM 和 SPONLINE.TDATA.COM。此设置是我们的内部政策规定的。

现在,问题在于应用程序配置为仅在 SPONLINE.TDATA.COM 上具有 SSL。但是当我启动 http://SPONLINE.TDATA.COM 时,它会自动将我重定向到 .

有人可以解释一下这种行为吗?并且可能对此进行修复?

【问题讨论】:

    标签: wildfly wildfly-8


    【解决方案1】:

    如果我理解正确,那么您的应用程序应该只针对 SPONLINE.TDATA.COM 运行(因为 SSL 要求)。

    我会跟随。在应用程序的 WEB-INF/jboss-web.xml 中指定它仅对 sponline 虚拟主机有效:

    <jboss-web>
       <context-root>/</context-root>
       <virtual-host>sponline</virtual-host>
    </jboss-web>
    

    然后您可以将默认主机配置保留在standalone.xml 并添加一个新的 - "sponline"

    <server name="default-server">
        <http-listener name="default" socket-binding="http"/>
        <https-listener name="https" socket-binding="https" security-realm="SSLRealm"/>
        <host name="default-host" alias="localhost">
            <location name="/" handler="welcome-content"/>
            <filter-ref name="server-header"/>
            <filter-ref name="x-powered-by-header"/>
        </host>
        <host name="sponline" alias="sponline.tdata.com"/>
    </server>
    

    安全领域"SSLRealm" 可以保持原样。

    【讨论】:

      【解决方案2】:

      尽管 kwart 的上述回答是正确的,并且确实解决了我的 HTTPs 问题,但我最终还是在 VM 上添加了一个 HTTPD 服务器来解决一系列其他问题。这实际上是专家推荐的做事方式..

      此外,为了弥补安全漏洞,我关闭了公共接口,使其只能从 HTTPD 服务器访问。

      简而言之,问题是通过架构更改来解决的,而不是使用 WildFly 来救火!

      【讨论】:

        猜你喜欢
        • 2018-03-14
        • 2018-11-07
        • 2019-09-20
        • 2014-10-26
        • 2016-01-04
        • 2016-12-27
        • 1970-01-01
        • 2019-09-10
        • 2017-10-06
        相关资源
        最近更新 更多