我正在创建一个WCF应用程序,将使用证书对客户端和服务器之间的通信进行加密。在开发环境中,我想使用一个测试证书/自签名证书,该证书是使用makecert创建的(只有服务器会有证书,客户端不会)。
我已将证书安装到证书存储中,并且一切正常。在客户端上,certificateValidationMode当前设置为“false”,因为我正在使用测试证书。
我的问题:
在客户端的app.config中,我需要将identity元素指定为以下内容:
“传出消息的标识检查失败。远程端点的预期DNS标识为'localhost',但是远程端点提供了DNS声明'Name-Of-Server-Computer'。如果这是合法的远程端点,则可以通过在创建通道代理时显式指定DNS标识'Name-Of-Server-Computer'作为Identity属性来解决问题。”
因此,我的问题如下:
1. 当使用真实、受信任的从CA购买的证书部署应用程序时,标识检查是否仍然会进行?或者只有在使用测试/自签名证书时才会执行标识检查?
2. 是否有方法禁用身份检查?我知道可以创建自己的自定义证书验证器,但似乎没有办法使用这些覆盖身份检查。
我已将证书安装到证书存储中,并且一切正常。在客户端上,certificateValidationMode当前设置为“false”,因为我正在使用测试证书。
我的问题:
在客户端的app.config中,我需要将identity元素指定为以下内容:
<endpoint ... >
<identity>
<dns value="<Name-Of-Server-Computer>"/>
</identity>
</endpoint>
如果我删除身份元素,则在尝试连接到服务器时客户端会显示以下错误消息:“传出消息的标识检查失败。远程端点的预期DNS标识为'localhost',但是远程端点提供了DNS声明'Name-Of-Server-Computer'。如果这是合法的远程端点,则可以通过在创建通道代理时显式指定DNS标识'Name-Of-Server-Computer'作为Identity属性来解决问题。”
因此,我的问题如下:
1. 当使用真实、受信任的从CA购买的证书部署应用程序时,标识检查是否仍然会进行?或者只有在使用测试/自签名证书时才会执行标识检查?
2. 是否有方法禁用身份检查?我知道可以创建自己的自定义证书验证器,但似乎没有办法使用这些覆盖身份检查。