Как добавить https-прослушиватель на сервер WildFly по умолчанию?

Я следую руководству из: https://github.com/jbosstm/quickstart/tree/master/XTS/ssl

Использование jboss-cli успешно добавило область безопасности:

/core-service=management/security-realm=SSLRealm:add()
/core-service=management/security-realm=SSLRealm/server-identity=ssl:add( \
   keystore-path=./standalone/configuration/server.keystore, \
   keystore-password=client, \
   alias=client)

Когда я пытаюсь добавить https-listener:

/subsystem=undertow/server=default-server/https-listener=https:add( \
    socket-binding="https", security-realm="SSLRealm" \
)

WildFly выдает исключение:

{
  "outcome" => "failed",
  "failure-description" => "JBAS014750: Operation handler failed to complete",
  "rolled-back" => true
}

Любые идеи, как добавить https-listener?


person Boris Pavlović    schedule 19.06.2014    source источник


Ответы (3)


Вот что у меня сработало на WildFly 8.1:

Добавьте область:

[standalone@localhost:9990 /] /core-service=management/security-realm=WebSocketRealm:add()
{"outcome" => "success"}

Настройте его:

[standalone@localhost:9990 /] /core-service=management/security-realm=WebSocketRealm/server-identity=ssl:add(keystore-path=websocket.keystore, keystore-relative-to=jboss.server.config.dir, keystore-password=websocket)
{
    "outcome" => "success",
    "response-headers" => {
        "operation-requires-reload" => true,
        "process-state" => "reload-required"
    }
}

Добавьте новый слушатель:

[standalone@localhost:9990 /] /subsystem=undertow/server=default-server/https-listener=https:add(socket-binding=https, security-realm=WebSocketRealm)
{
    "outcome" => "success",
    "response-headers" => {"process-state" => "reload-required"}
}

А затем перезапустите:

[standalone@localhost:9990 /] reload

Это добавило следующие фрагменты в standalone/configuration/standalone.xml:

<security-realm name="WebSocketRealm">
            <server-identities>
                <ssl>
                    <keystore path="websocket.keystore" relative-to="jboss.server.config.dir" keystore-password="websocket"/>
                </ssl>
            </server-identities>
        </security-realm>

а также

<https-listener name="https" socket-binding="https" security-realm="WebSocketRealm"/>

Какую версию WildFly вы используете?

person Arun Gupta    schedule 27.10.2014
comment
Нужен ли SSL-сертификат? Обычно да, но я не нахожу в ваших кодах ссылки на какой-либо SSL-сертификат - person I love coding; 25.02.2016
comment
где я могу включить конфигурацию https-прослушивателя? - person Rodolfo Velasco; 15.02.2018

Я сделал это, адаптировав файл standalone.xml. Насколько я помню шаги такие:

  1. Добавление области безопасности для прослушивателя ssl

    <security-realm name="SSLRealm">
      <server-identities>
        <ssl protocol="TLS">
          <keystore path="keystore-name" relative-to="jboss.server.config.dir" keystore-password="password" alias="alias"/>
        </ssl>
      </server-identities>
      <authentication>
        <truststore path="truststorename" relative-to="jboss.server.config.dir" keystore-password="password"/>
      </authentication>
    </security-realm>
    
  2. Добавление https-listener в конфигурацию undertow

    <https-listener name="default-https" socket-binding="https" security-realm="SSLRealm" verify-client="REQUESTED"/>
    
  3. Добавление привязки сокета для https-прослушивателя в список привязок сокета

    <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>
    

Я еще не пытался добавить этот прослушиватель с помощью интерфейса управления, но описанный выше подход сработал отлично.

person shillner    schedule 19.06.2014
comment
Не уверен в этом: шаг 2 (https-listener) ссылается на socket-binding=https, но строка, добавленная на шаге 3, называет привязку как management-https. Я предполагаю, что это было просто скопировано. Запись для name=https будет аналогичной, но с другим портом, с выражением типа ${jboss.https.port:8443}. - person Glenn; 01.04.2021

В моем случае хранилище ключей, которое использовалось в сфере безопасности, отсутствовало, когда я пытался добавить прослушиватель https. После того, как я скопировал хранилище ключей в каталог конфигурации и выполнил reload в CLI, я мог добавить прослушиватель https с помощью CLI.

Хотя интерфейс командной строки не выводит информативное сообщение об ошибке, консоль сообщает вам, что wildfly не может найти хранилище ключей.

person Benny    schedule 31.05.2017