Перенаправить 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


person Faiyaz Md Abdul    schedule 03.05.2017    source источник


Ответы (3)


Для перенаправления пользователей можно использовать правило перезаписи. В нижней подсистеме (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 для тех же изменений конфигурации, описанных выше:

/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)")
person Varsha    schedule 03.05.2017
comment
Благодарность ! . Это действительно сработало. любая ссылка / документация / источник об этом? - person Faiyaz Md Abdul; 03.05.2017
comment
также я не могу запустить порт 443 по умолчанию. - person Faiyaz Md Abdul; 03.05.2017
comment
Нет общедоступной документации. Что касается порта, вам нужно проверить, доступен ли порт 443 или нет в Windows. В Linux вы должны быть root (иметь привилегии суперпользователя), чтобы слушать TCP или UDP порты ниже 1024. Не уверен насчет Windows. - person Varsha; 03.05.2017
comment
Поддерживается ли это и в wildfly-8.1? Я пытаюсь, но там не работает. - person sumit; 21.02.2018
comment
Улучшение: добавление% q к целевому значению лучше, потому что оно добавляет параметры для перенаправления ex: target = https: //% v: 8458% U% q - person Edison Agurto; 09.06.2020

Начиная с WildFly 15: консоль администратора - ›Интернет -› фильтры - ›добавить правило перезаписи https://%v%U

Затем добавьте его к каждому желаемому хосту с условием equals(%p,80).

Нет необходимости создавать правило для каждого хоста.

https://leponceau.org/programming/2019-02-06-configuring-wildfly-to-redirect-https-to-http.html.

person user1050755    schedule 06.02.2019

Я пытался

<rewrite name="http-to-https" redirect="true" target="https://my.website.com:443/Web/"/>

Как видите без %U

Он перенаправляет весь HTTP-трафик на HTTPS.

person Laefiss    schedule 07.06.2017