2014-09-24 3 views
1

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

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

  1. Войдите в административную консоль.
  2. Разверните Безопасность и нажмите Сертификат 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 ERROR [org.jboss.as.controller.management-operation] Operation ("add") failed - address: ([ ("subsystem" => "web"), ("connector" => "https"), ("ssl" => "configuration") ]) - failure description: "JBAS014803: Duplicate resource [ (\"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?

ответ

2

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

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

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

+0

Спасибо! Это свойство - точно, что исправлено. (И удаление дополнительных тегов «ssl key-alias». – Gabriel

+0

тег фактически используется для добавления сертификата для вашего собственного сервера, т. Е. Когда вы запускаете свой собственный сервер на https, этот сертификат будет поэтому нет смысла указывать несколько сертификатов для одного сервера .. :) – Akhil