Веселье:вызов веб-службы SSL SOAP с клиентским сертификатом

StackOverflow https://stackoverflow.com/questions/940404

Вопрос

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

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

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

Платформа:

  • Windows 2003 с пакетом обновления 2
  • Веселье 1.8
  • Java jre1.5.0_09

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

Это было полезно?

Решение 2

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

Другие советы

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

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top