在 wildfly 10 中将 http 请求重定向到 https
Redirect http requests to https in wildfly 10
这是我的独立配置-full.xml 配置了 ssl
安全领域 .
<security-realm name="SslRealm">
<server-identities>
<ssl>
<keystore path="D:\ncm.keystore" alias="ncm" keystore-password="*****" />
</ssl>
</server-identities>
</security-realm>
子系统
<server name="default-server">
<http-listener name="default" socket-binding="http" redirect-socket="https"/>
<https-listener name="default-ssl" 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>
</server>
套接字绑定
<socket-binding name="http" port="${jboss.http.port:8080}"/>
<socket-binding name="https" port="${jboss.https.port:8443}"/>
如何重定向到 https:///localhost:8443/myApp when user hits http://localhost:8080/myApp
重写规则可用于重定向用户。在 undertow 子系统(standalone.xml 或 domain.xml)中,您需要创建一个新的重写过滤器,然后在新的 fitler-ref 中启用该过滤器:
在过滤器部分创建新的重写过滤器。在下面的示例中,用户将被重定向到 https://myhostname:443/my-app
。 %U是原始请求URL路径的占位符;你想使用 %U 使重定向友好并保留用户的原始请求 URL 路径。
<filters>
<rewrite name="http-to-https" redirect="true" target="https://myhostname:8443%U"/>
</filters>
然后,启用过滤器并在主机部分配置谓词。谓词是您配置重写过滤器适用的地方。在下面的示例中,我们的重写过滤器将仅适用于去往端口 8080 的请求。
<server name="default-server">
<host name="default-host" alias="localhost">
...
<filter-ref name="http-to-https" predicate="equals(%p,8080)"/>
以下是 JBoss CLI 步骤,用于上述相同的配置更改:
/subsystem=undertow/configuration=filter/rewrite=http-to-https:add(redirect="true",target="https://myhostname:8443%U")
/subsystem=undertow/server=default-server/host=default-host/filter-ref=http-to-https:add(predicate="equals(%p,8080)")
我试过了
<rewrite name="http-to-https" redirect="true" target="https://my.website.com:443/Web/"/>
如你所见,没有 %U
它将所有 HTTP 流量重定向到 HTTPS
从 WildFly 15 开始:管理控制台 -> 网络 -> 过滤器 -> 添加重写规则 https://%v%U
然后根据条件 equals(%p,80)
.
将其添加到您希望的每个主机
无需为每个主机创建规则。
https://leponceau.org/programming/2019-02-06-configuring-wildfly-to-redirect-https-to-http.html
这是我的独立配置-full.xml 配置了 ssl
安全领域 .
<security-realm name="SslRealm">
<server-identities>
<ssl>
<keystore path="D:\ncm.keystore" alias="ncm" keystore-password="*****" />
</ssl>
</server-identities>
</security-realm>
子系统
<server name="default-server">
<http-listener name="default" socket-binding="http" redirect-socket="https"/>
<https-listener name="default-ssl" 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>
</server>
套接字绑定
<socket-binding name="http" port="${jboss.http.port:8080}"/>
<socket-binding name="https" port="${jboss.https.port:8443}"/>
如何重定向到 https:///localhost:8443/myApp when user hits http://localhost:8080/myApp
重写规则可用于重定向用户。在 undertow 子系统(standalone.xml 或 domain.xml)中,您需要创建一个新的重写过滤器,然后在新的 fitler-ref 中启用该过滤器:
在过滤器部分创建新的重写过滤器。在下面的示例中,用户将被重定向到 https://myhostname:443/my-app
。 %U是原始请求URL路径的占位符;你想使用 %U 使重定向友好并保留用户的原始请求 URL 路径。
<filters>
<rewrite name="http-to-https" redirect="true" target="https://myhostname:8443%U"/>
</filters>
然后,启用过滤器并在主机部分配置谓词。谓词是您配置重写过滤器适用的地方。在下面的示例中,我们的重写过滤器将仅适用于去往端口 8080 的请求。
<server name="default-server">
<host name="default-host" alias="localhost">
...
<filter-ref name="http-to-https" predicate="equals(%p,8080)"/>
以下是 JBoss CLI 步骤,用于上述相同的配置更改:
/subsystem=undertow/configuration=filter/rewrite=http-to-https:add(redirect="true",target="https://myhostname:8443%U")
/subsystem=undertow/server=default-server/host=default-host/filter-ref=http-to-https:add(predicate="equals(%p,8080)")
我试过了
<rewrite name="http-to-https" redirect="true" target="https://my.website.com:443/Web/"/>
如你所见,没有 %U
它将所有 HTTP 流量重定向到 HTTPS
从 WildFly 15 开始:管理控制台 -> 网络 -> 过滤器 -> 添加重写规则 https://%v%U
然后根据条件 equals(%p,80)
.
无需为每个主机创建规则。
https://leponceau.org/programming/2019-02-06-configuring-wildfly-to-redirect-https-to-http.html