Веселье: вызов веб-службы SSL SOAP с клиентским сертификатом - PullRequest
1 голос
/ 02 июня 2009

Сценарий заключается в вызове внешнего веб-сервиса SSL SOAP изнутри Mirth. Для веб-службы требуется соединение SSL / TLS вместе с сертификатом клиента.

Предполагается использовать встроенный пункт назначения отправителя SOAP для вызова удаленной защищенной веб-службы и каким-либо образом включать этот сертификат клиента.

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

Платформа:

  • Windows 2003 SP2
  • Веселье 1,8
  • Java jre1.5.0_09

Вопрос : какие этапы настройки (Mirth, хранилища сертификатов JRE и т. Д.) Вы бы предложили, чтобы отправитель Mirth SOAP включал клиентский сертификат (* .cer) при вызове веб-службы, защищенной SSL?

Ответы [ 3 ]

3 голосов
/ 02 июня 2009

Среда выполнения Java или, в частности, поставщик JSSE Sun, представит сертификат клиента, если установлены некоторые системные свойства. Вы можете прочитать подробности в Справочном руководстве JSSE, , но важными свойствами являются javax.net.ssl.keyStore и javax.net.ssl.keyStorePassword.

У этого подхода есть несколько недостатков. Во-первых, установка пароля хранилища ключей в качестве системного свойства делает его доступным для любого кода, выполняемого в этом процессе - хотя это можно контролировать, если установлен SecurityManager. Во-вторых, эти настройки будут использоваться для любых сокетов SSL, созданных через «default» SSLContext. Если вам нужны разные учетные данные для разных конечных точек, вам понадобится решение, ориентированное на Mirth.

Не указана начальная точка в вопросе, но если начать с нуля, самый простой подход - создать новое хранилище ключей Java (формат "JKS") и сгенерировать новую пару ключей и CSR. После отправки CSR в CA и получения сертификата обратно импортируйте его в то же хранилище ключей. Это хранилище ключей готово к использованию.

Если сертификат уже доступен, он, вероятно, будет храниться с соответствующим закрытым ключом в формате PKCS # 12 (файл .p12 или .pfx). Они могут использоваться непосредственно приложением Java, но для свойства javax.net.ssl.keyStoreType должно быть установлено значение "PKCS12"

1 голос
/ 11 ноября 2009

Mirth 1.8 не может отправить сертификат клиента при вызове веб-службы SOAP.

0 голосов
/ 27 августа 2010

Я немного опоздал на это, но на самом деле есть вероятность, что это возможно. Отправив несколько параметров конфигурации в JVM, можно заставить базовый механизм SOAP переключиться на HTTP и предоставить соответствующий сертификат.

см. Этот вопрос для получения подробной информации о том, какие параметры необходимо настроить для настройки виртуальной машины

Проверка подлинности сертификата клиента Java HTTPS

вы заметите, что есть несколько вещей, о которых нужно позаботиться. Обычно HTTP и аутентификация клиента должны «просто работать», как только вы правильно настроили свои сертификаты. НО есть некоторые серверы, которые не так дружелюбны к клиентам в стиле B2B, поэтому вам следует остерегаться.

Используя JDK 6_21 и несколько настроек с сертификатом, я смог заставить один из них работать, но с нашей стороны было долго и мучительно, что для правильной настройки на сервере потребовалось около 15 минут.

вот еще один вопрос, касающийся этой самой проблемы (аутентификация на стороне клиента в отношении недружественных серверов).

Проверка подлинности клиента SSL, вызывающая ошибку 403.7 из IIS

...