2

我有一个 WCF 服务,它目前托管在 NLB 后面的两台服务器上。这两个服务器地址是(例如)t001.mydomain.comt002.mydomain.comNLB 地址是services.mydomain.com。两者t001都有t002SSL 证书services.mydomain.com

我们将几项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" />

现在,我有点明白为什么会这样了。我知道它是一个解决方案,但我不知道它是否是我问题的解决方案。

这是解决这个问题的方法吗?有没有更好/更推荐的方法来解决这个问题?也许有人可以向我指出一个解释这一点的权威来源,因为我真的找不到一个。

4

1 回答 1

2

这不起作用,因为 cert. 域部分不同。看

关于主机名的事情 - 除非您使用完全限定的域名,否则某些系统将无法正常工作。其他人就没那么挑剔了。在任何情况下 - 证书的主题 DN 应该唯一地描述它所代表的服务、应用程序或服务器。

从这篇文章集群环境中的相互 WCF 证书身份验证/SSL

更多细节可以在这里找到:http ://technet.microsoft.com/en-us/library/dd439393(v=exchg.80).aspx

于 2013-04-15T05:41:57.823 回答