Как настроить SSL-сертификаты внешнего поставщика в JBoss 7.1

1

Я перехожу из Websphere 8.x в JBoss 7.1, но у меня возникают проблемы с получением SSL-сертификатов в JBoss 7.1. Мы используем веб-службы внешних поставщиков через SSL.

В Websphere я бы сделал следующее:
Добавить поставщика в локальный магазин доверия WAS:
Используйте параметр "Получить из порта" в административной консоли, чтобы получить сертификат и решить проблему.
Выполните следующие шаги:

  1. Войдите в административную консоль.
  2. Разверните Security и нажмите SSL-сертификат и управление ключами. В разделе "Параметры конфигурации" выберите "Управление конфигурациями безопасности конечных точек".
  3. Выберите соответствующую исходящую конфигурацию, чтобы перейти к ячейке (ячейка): E4GT82WNode03Cell: (node): область управления E4GT82WNode03.
  4. В разделе Связанные элементы нажмите "Клавиши хранилищ и сертификатов" и щелкните хранилище ключей NodeDefaultTrustStore.
  5. В разделе Дополнительные свойства щелкните Сертификаты подписчика и "Извлечь из порта".
  6. В поле "Хост" введите services.vendor.com в поле имени хоста, введите 443 в поле "Порт" и services.vendor.com_cert в поле "Псевдоним".
  7. Нажмите "Получить информацию о подписчике".
  8. Убедитесь, что информация о сертификате соответствует сертификату, которому вы можете доверять.
  9. Нажмите "Применить" и "Сохранить".

Но в JBoss не похоже, что есть такая возможность. Я играл с openssl, keytool для создания, добавлял сертификаты в хранилище ключей и пытался вносить изменения в файл standalone.xml. Я пробовал так много разных вещей, которые были предложены в разных результатах поиска, которые я пробовал, и потратил бесчисленные часы, пытаясь понять это.

Я получаю эту ошибку:

13: 08: 50,801 ОШИБКА [org.jboss.as.controller.management-operation] Ошибка операции ("добавить") - адрес: ([("подсистема" => "сеть"), ("коннектор" => "https "), (" ssl "=>" configuration ")]) - описание ошибки:" JBAS014803: дублировать ресурс [(\ "subsystem \" =>\"web \"), (\ "connector \" =>\" https\"), (\ ssl \" =>\"configuration \")] "

Выдает ошибку:

    <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
      <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
      <connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true">
        <ssl key-alias="jbosscerts" password="secret" certificate-key-file="D:\opt\jboss-as-7.1.1.Final\keystore\jbosscertstore.keystore" certificate-file="C:/jboss-as-7.1.1.Final\keystore\jbosscertstore.keystore" cipher-suite="ALL" protocol="TLSv1"/>
        <ssl key-alias="vendor1.com_cert" password="secret" certificate-key-file="C:\jboss-as-7.1.1.Final\keystore\jbosscertstore.keystore" certificate-file="C:\jboss-as-7.1.1.Final\keystore\jbosscertstore.keystore" cipher-suite="ALL" protocol="TLSv1"/>
        <ssl key-alias="vendor2.com_cert" password="secret" certificate-key-file="D:\opt\jboss-as-7.1.1.Final\keystore\jbosscertstore.keystore" certificate-file="C:\jboss-as-7.1.1.Final\keystore\jbosscertstore.keystore" cipher-suite="ALL" protocol="TLSv1"/>
      </connector>          
      <virtual-server name="default-host" enable-welcome-root="true">
        <alias name="localhost"/>
        <alias name="example.com"/>
      </virtual-server>
    </subsystem>

Не бросает ошибку:

    <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
      <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
      <connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true">
        <ssl key-alias="jbosscerts" password="secret" certificate-key-file="D:\opt\jboss-as-7.1.1.Final\keystore\jbosscertstore.keystore" certificate-file="C:/jboss-as-7.1.1.Final\keystore\jbosscertstore.keystore" cipher-suite="ALL" protocol="TLSv1"/>
      </connector>          
      <virtual-server name="default-host" enable-welcome-root="true">
        <alias name="localhost"/>
         <alias name="example.com"/>
      </virtual-server>
    </subsystem>

Мой вопрос заключается в следующем: как настроить несколько сертификатов SSL в JBoss, как это делает Websphere?

Теги:
ssl
jboss

1 ответ

2
Лучший ответ

Для этого вам нужно будет добавить системные свойства. Поэтому в основном добавьте следующий фрагмент кода в ваш standalone.xml сразу после <extensions>....</extensions>:

<system-properties>
        <property name="javax.net.ssl.trustStore" value="<location of cert>"/>
</system-properties>

<location of cert> - это местоположение файла хранилища ключей Java, содержащего коллекцию сертификатов CA, которым доверяет этот процесс приложения (хранилище доверия). Обратите внимание, что в Windows указанный путь должен использовать передние косые черты, /, вместо \.

  • 0
    Спасибо! Это свойство - именно то, что исправило его (и удаляет дополнительные теги ssl key-alias).
  • 0
    Тег <ssl> фактически используется для добавления сертификата для вашего собственного сервера, т.е. когда вы запускаете свой собственный сервер по протоколу https, этот сертификат будет использоваться. Так что нет смысла указывать несколько сертификатов для одного сервера .. :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню