我正在开发一个将由Java应用程序(通过DataPower)使用的WCF服务,并且我正在使用以下绑定。
<customBinding>
<binding name="InteropCertificateBindingG">
<transactionFlow />
<security
authenticationMode="MutualCertificate"
defaultAlgorithmSuite="TripleDesRsa15"
messageSecurityVersion="WSSecurity10WSTrust13WSSecureConversation13WSSecurityPolicy12BasicSecurityProfile10"
includeTimestamp ="true"
messageProtectionOrder="SignBeforeEncrypt"
securityHeaderLayout="Strict"/>
<textMessageEncoding />
<httpsTransport />
</binding>
</customBinding>
如果我们只签名,并且只接收签名,则该消息一切正常。
但是当我们定义加密和签名的合同时,客户端发送加密和签名的消息我,wcf服务接受消息,但客户端在读取响应时收到错误
错误是这样的:
事务在步骤2中中止。哈希值不匹配
我怎么知道哪些标签正在加密/签名?
我是否应该使用MutualCertificate或MutualCertificateDuplex authenticationMode,因为我使用的是AsymmetricSecurityBindingElement(由wssecurity10消息版本定义)?
我们如何解决这个问题?
答案 0 :(得分:0)
问题是因为java客户端使用一个证书对请求进行签名,并期望收到使用其他证书加密的响应