2012-03-02 82 views
0

我正在开发一个WCF服务,该服务将由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中的哈希值中止不符合

我怎样才能知道哪些标签被加密/签名的?

因为我使用AsymmetricSecurityBindingElement(由wssecurity10消息版本定义),我应该使用MutualCertificate还是MutualCertificateDuplex authenticationMode?

我们如何解决这个问题的任何想法?

回答

0

问题是因为Java客户端用一个证书来签名请求,并期待得到另一个证书

+0

你是如何返回与证书加密的响应加密的响应? – 2016-12-27 19:05:21