WCF中的TCP TCP证书无效

时间:2011-02-23 17:32:10

标签: .net wcf certificate nettcpbinding

我正在尝试让我的WCF服务在我的本地环境中使用基于证书的加密,这样当它出现在实时环境中时,它会与不同域中的机器通信。在尝试实现安全性之前,我的服务工作正常,所以我确信故障不在服务中。

我使用makecert.exe生成了一些证书。首先,我创建了两个我刚才调用的WCFclient和WCFServer,并将它们添加到mmc中当前用户的可信文件夹中。然而,这产生了错误:

  

传出身份检查失败   信息。预期的DNS身份   远程端点是'localhost'   但是远程端点提供了DNS   声称'WCfServer'。如果这是一个   合法的远程端点,你可以   通过显式解决问题   将DNS标识'WCfServer'指定为   。的身份属性   创建频道时的EndpointAddress   代理

我认为这是因为我将证书发给了一个名为“WCFServer”的不存在的域。所以我创建了另一个证书并给它一个CN“localhost”并试图配置客户端和服务器来使用它。现在我收到这条消息:

  

根据验证程序,远程证书无效。

我在我的客户端配置中设置了certificateValidationMode =“None”,所以我认为这不是由于证书过期等原因造成的。有谁知道还有什么可能导致这个错误?是因为我试图在客户端和服务器端使用相同的证书,如果是这样,我如何设置配置文件以避免获得有关DNS身份的先前错误消息?

1 个答案:

答案 0 :(得分:1)

使用以下客户端端点定义可以避免以前的错误消息:

<endpoint  name="..." address="..." binding="..." contract="...">
  <identity>
    <dns value="WCFServer" />
  </identity>
</endpoint>

对于第二个错误,使用PeerTrust验证模式就足够了。