Запрос веб-службы SoapUI с использованием сертификата открытого ключа

У меня есть WSDL для веб-службы и сертификата открытого ключа в виде файла .cer.

Мне нужно заставить SoapUI зашифровать запрос службы открытым ключом сертификата.

Как это сделать?

Ответ 1

В SoapUI перейдите в диалоговое окно "Настройки" в меню "Файл". Там есть вкладка/раздел для SSL. Там вы можете указать путь к файлу .cer. У меня его нет здесь передо мной, и я только сделал .pfx, но он должен работать одинаково. С .pfx вам нужно ввести пароль - не уверен, что вы делаете это для .cer или нет. Вы также можете преобразовать .cer в .pfx, если это работает лучше. Но в любом случае, с указанным здесь .pfx, я смог использовать https-соединения на нашем сервере (фактически шлюз Cisco ACE), который требовал "аутентификацию сертификата клиента". Это было легко сделать в SoapUI, доказав, что инфраструктура настроена правильно. Наше приложение, написанное на Delphi2005, заняло еще 3 недели... Но по крайней мере мы знали, что мы пытаемся сделать, и имели способ проверить результат.

Ответ 2

В настройках укажите путь к вашему сертификату в поле KeyStore и под ним. Я использую сертификат p12 и, похоже, работает нормально.

Ответ 3

Если вы можете использовать WCF, просто добавьте безопасность в привязку и следующее поведение:

<behaviors>
  <behavior>
   <clientCredentials>
     <clientCertificate findValue= "101010101010101010101010101010000000000" 
      storeLocation="LocalMachine" storeName="The logic storage" 
      X509FindType="The cert name"/>
     </clientCertificate>
   </clientCredentials>
 </behavior>
</behaviors>  

Подробнее о том, как включить защиту в WCF, см.: MSDN