WCF Взаимный сертификат зашифрованных тегов - PullRequest
0 голосов
/ 02 марта 2012

Я разрабатываю службу WCF, которая будет использоваться приложением Java (через DataPower), и я использую следующую привязку.

<customBinding>
  <binding name="InteropCertificateBindingG">
    <transactionFlow />
    <security
      authenticationMode="MutualCertificate"
      defaultAlgorithmSuite="TripleDesRsa15"
      messageSecurityVersion="WSSecurity10WSTrust13WSSecureConversation13WSSecurityPolicy12BasicSecurityProfile10"
      includeTimestamp ="true"
      messageProtectionOrder="SignBeforeEncrypt"
      securityHeaderLayout="Strict"/>          
    <textMessageEncoding />
    <httpsTransport />
  </binding>
</customBinding>

Если мы только подписываем, а получаем только подписанные, сообщение все работает нормально.

Но когда мы определяем контракт для шифрования и подписи, клиент отправляет сообщение в зашифрованном виде и подписывается I, служба wcf принимает сообщение, но клиент получает ошибку, когда он пытаетсяпрочитайте ответ

ошибка такова:

Транзакция прервана на шаге 2. Значения хеша не совпадают

Как узнать, какие тегизашифрованы / подписаны?

Должен ли я использовать MutualCertificate или MutualCertificateDuplex authenticationMode, поскольку я использую AsymmetricSecurityBindingElement (определяется версией сообщения wssecurity10)?

Есть идеи, как мы можем решить это?

1 Ответ

0 голосов
/ 04 апреля 2012

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

...