SSL服务器证书存在WCF的一个名称?

时间:2011-09-28 03:12:10

标签: wcf ssl x509certificate nettcpbinding

我有一个带TCP绑定的自托管WCF服务,现在尝试在SSL上进行分层。

我从CA获得的证书有两个“主题备用名称”值:

www.mysite.com
mysite.com

我只想向WCF客户提供“mysite.com”,不知何故这是www.mysite.com(CA补充说,我没有要求www.mysite.com)。

我正在使用下面的代码服务器端。我有什么要调整以“隐藏”www.mysite.com地址?

svc.Credentials.ServiceCertificate.SetCertificate(
StoreLocation.CurrentUser , StoreName.My , X509FindType.FindBySubjectName , "mysite.com" );

所以现在当客户端连接时,我得到了

  

“传出消息的身份检查失败。远程端点的预期DNS身份是'mysite.com',但远程端点提供了DNS声明'www.mysite.com'。如果这是一个合法的远程端点,您可以通过在创建通道代理时明确指定DNS标识“www.mysite.com”作为EndpointAddress的Identity属性来解决问题。“

我不希望客户对www.mysite.com有任何了解。我只希望他们使用服务提供的东西,我希望服务器只呈现mysite.com。

1 个答案:

答案 0 :(得分:0)

你为什么要隐藏它?具有SAN替代品的证书意味着它对所有这些FQDN都有价值,因此它可以在www.mysite.com和mysite.com上运行。

此外,从您调用SetCertificate的外观来看,证书的主题名称是您想要的,mysite.com以及首先检查的内容。

错误消息的全文以

的形式出现
  

外发邮件的身份检查失败。预期的DNS身份   远程端点的数量为“X”,但远程端点提供DNS   声称'Y'

现在这与与证书有关,但是配置了IIS的主机,或者在自托管的情况下,主机/机器Windows被配置为。您可以通过为endpoint;

添加新配置设置来覆盖WCF将使用的主机
<identity>
    <dns value="mysite.com"/>
</identity>

或在创建端点时在代码中设置它。