1

我们有一个托管在 IIS 中的 WCF 服务,具有以下customBinding。该服务接收来自 IBM Datapower 的加密和签名请求。该服务可以验证签名并很好地解密请求。但是发出的响应没有加密或签名。(我可以使用 WCF 日志记录来验证这一点)

<customBinding>
    <binding name="myCustomBinding">
      <textMessageEncoding messageVersion="Soap11" />
      <httpsTransport requireClientCertificate="false" realm="" />
    </binding>
</customBinding>

<behaviors>
  <serviceBehaviors>
    <behavior name="myServiceBehavior">
      <serviceCredentials>
        <serviceCertificate findValue="{serverCertificateName}" x509FindType="FindBySubjectName" 
                            storeLocation ="LocalMachine" storeName ="My"/>
        <clientCertificate>
          <certificate findValue="{clientCertificateName}" x509FindType="FindBySubjectName"
                        storeLocation ="LocalMachine" storeName ="My" />
          <authentication certificateValidationMode="None" includeWindowsGroups="false"/>
        </clientCertificate>
      </serviceCredentials>
    </behavior>
 </serviceBehaviors></behaviors>

MessageContracts 的 ProtectionLevel 设置为ProtectionLevel.EncryptAndSign

我在这里错过了什么吗?

4

1 回答 1

0

我不是 WCF 专家,如果我问以下问题,请原谅我。

要对 [PKI 域中的] 内容进行加密和签名,您需要有一个私钥 [而且每个人都知道它不包含在证书中]。所以我只是好奇,关于在上面的配置中指定私钥的位置。如果您在上述配置中指定证书,是否会自动获取相应的私钥[我只是好奇,因为我不确定引擎盖下发生了什么]?

相反,当您收到加密内容时,您唯一需要验证和解密的就是证书[实际上在大多数情况下,将可能发生的密钥协商放在一边]。

让我知道这是否有帮助?可能是这个评论太琐碎了[如果是这种情况,请原谅]。

于 2013-11-05T07:11:30.143 回答