将http请求重定向到wildfly 10中的https

Fai*_*dul 6 ssl https jboss spring wildfly-10

这是我的standalone-full.xml配置,带有ssl配置的
安全领域.

      <security-realm name="SslRealm">
            <server-identities>
            <ssl>
            <keystore path="D:\ncm.keystore" alias="ncm" keystore-password="*****" />
            </ssl>
            </server-identities>
        </security-realm>
Run Code Online (Sandbox Code Playgroud)

子系统

 <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>
Run Code Online (Sandbox Code Playgroud)

套接字绑定

   <socket-binding name="http" port="${jboss.http.port:8080}"/>
    <socket-binding name="https" port="${jboss.https.port:8443}"/>
Run Code Online (Sandbox Code Playgroud)

当用户点击http:// localhost:8080/myApp时,如何重定向到https:/// localhost:8443 / myApp

Var*_*sha 20

重写规则可用于重定向用户.在下载子系统(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>
Run Code Online (Sandbox Code Playgroud)

然后,启用过滤器并在主机部分中配置谓词.谓词是您配置重写过滤器适用的内容的位置.在下面的示例中,我们的重写过滤器仅适用于发往端口8080的请求.

    <server name="default-server">
        <host name="default-host" alias="localhost">
            ...
            <filter-ref name="http-to-https" predicate="equals(%p,8080)"/>
Run Code Online (Sandbox Code Playgroud)

以下是针对上述相同配置更改的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)")
Run Code Online (Sandbox Code Playgroud)

  • 没有公开文件.关于端口,您需要检查Windows上是否可以访问443端口.在linux中,你必须是root(拥有超级用户权限)才能收听1024以下的TCP或UDP端口.不确定是否有windows. (2认同)
  • 原始文档可在 [Undertow 项目](http://undertow.io/undertow-docs/undertow-docs-1.4.0/predicates-attributes-handlers.html) 下找到。Undertow 是在 Wildfly 10 引擎盖下运行的 Web 服务器。 (2认同)