我试图让我的 WCF 服务在我的本地环境中使用基于证书的加密,以便当它在实时环境中出现时,它可以与不同域中的机器通信。在尝试实施安全性之前,我的服务运行良好,所以我确信故障不在服务中。
我使用 makecert.exe 生成了一些证书。首先,我创建了两个我刚刚调用的 WCFclient 和 WCFServer,并将它们添加到 mmc 中当前用户的受信任文件夹中。然而,这产生了错误:
传出消息的身份检查失败。远程端点的预期 DNS 身份是“localhost”,但远程端点提供了 DNS 声明“WCfServer”。如果这是一个合法的远程端点,您可以通过在创建通道代理时明确指定 DNS 身份“WCfServer”作为 EndpointAddress 的 Identity 属性来解决问题
我认为这是因为我将证书颁发给一个不存在的名为“WCFServer”的域。所以我创建了另一个证书并给它一个“localhost”的CN,并尝试配置客户端和服务器来使用它。现在我收到这条消息:
根据验证程序,远程证书无效。
我在客户端配置中设置了 certificateValidationMode="None",所以我不认为这是由于证书过期等原因。有谁知道还有什么可能导致此错误?是因为我试图在客户端和服务器端使用相同的证书,如果是这样,我该如何设置配置文件以避免收到有关 DNS 身份的先前错误消息?