我有一个 WCF 服务,当前托管在 NLB 后面的两台服务器上。
两个服务器地址是(例如)t001.mydomain.com
和t002.mydomain.com
NLB地址为services.mydomain.com
。两者t001
和t002
拥有 services.mydomain.com
的 SSL 证书
我们搬了几个ASMX
服务新WCF
模型。当我第一次将服务放在两台服务器上时,我在使用 WSDL 时遇到了问题。一项服务正在运行,但其他服务给我一个错误,指出他们无法创建安全连接,因为证书无效。
我将 URL 放入 Chrome 中,我注意到正在运行的服务具有如下所示的 WSDL URI:http://services.mydomain.com/services/service1.svc
无法运行的服务的 URI 为 http://t001.mydomain.com/services/service2.svc
。所以我明白为什么证书对于这些服务无效。
我为解决此问题所做的工作(在查看配置文件中的差异之后)是将以下行添加到无法正常工作的服务的配置文件中:
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
现在,我有点明白为什么会这样了。我知道它是一个解决方案,但我不知道它是否是我的问题的解决方案。
这是解决这个问题的方法吗?有没有更好/更推荐的方法来解决这个问题?也许有人可以向我指出解释这一点的权威来源,因为我找不到真正的来源。
最佳答案
这不起作用,因为 cert.域部分不同。参见
关于主机名的事情 - 除非您使用完全限定的域名,否则某些系统将无法正常工作。其他人则没有那么挑剔。无论如何 - 证书的主题 DN 应唯一地描述它所代表的服务、应用程序或服务器。
来自这篇文章Mutual WCF certificate authentication/SSL in cluster environment
更多详细信息可以在这里找到:http://technet.microsoft.com/en-us/library/dd439393(v=exchg.80).aspx
关于带有 NLB 的 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16008086/