Перенаправить http запросы на https в 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>
подсистема
<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, когда пользователь нажимает http://localhost:8080/myApp
2 ответа
Правило перезаписи можно использовать для перенаправления пользователей. В подсистеме 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)"/>
Вот шаги CLI JBoss для тех же самых изменений конфигурации выше:
/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)")
Начиная с WildFly 15: консоль администратора -> Интернет -> фильтры -> добавить правило перезаписи https://%v%U
Затем добавьте его к каждому желаемому хосту с условием equals(%p,80)
,
Не нужно создавать правила для каждого хоста.
https://javagc.leponceau.org/2019/02/configuring-wildfly-to-redirect-https.html
Я старался
<rewrite name="http-to-https" redirect="true" target="https://my.website.com:443/Web/"/>
Как вы можете видеть без %U
Он перенаправляет весь HTTP-трафик на HTTPS