WildFly 上的 HTTPS - 从 HTTP 重定向

HTTPS on WildFly - Redirecting from HTTP

我的应用程序 运行 在 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 时,它会自动将我重定向到 .

谁能给我解释一下这种行为?并可能解决这个问题?

如果我理解正确,那么您的应用程序应该只 运行 用于 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"可以保持原样。

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

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

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