WCF&x2B;SSL与负载平衡一起工作?

WCF&x2B;SSL与负载平衡一起工作?,wcf,ssl,load-balancing,Wcf,Ssl,Load Balancing,如果SSL由负载平衡器处理,是否仍需要在WCF serviceCertificate节点中配置它?我的方案是使用消息级安全性。如果有人能解释wcf和ssl的负载平衡是如何工作的,那就太好了。事实并非如此。别管这个了。你会在一个充满伤害的世界里。只需在每台机器上安装证书。我们最近经历了这场惨败。WCF不值得付出它认为需要SSL的努力,但却发现它没有SSL。如果您想在loadbalancer上执行所有SSL,请查看openrasta或其他内容#microsoftfail如果您想使用消息安全性,则每个

如果SSL由负载平衡器处理,是否仍需要在WCF serviceCertificate节点中配置它?我的方案是使用消息级安全性。如果有人能解释wcf和ssl的负载平衡是如何工作的,那就太好了。

事实并非如此。别管这个了。你会在一个充满伤害的世界里。只需在每台机器上安装证书。我们最近经历了这场惨败。WCF不值得付出它认为需要SSL的努力,但却发现它没有SSL。如果您想在loadbalancer上执行所有SSL,请查看openrasta或其他内容#microsoftfail

如果您想使用消息安全性,则每个消息都会分别加密和签名-没有安全连接,负载平衡器的行为与任何其他HTTP传输一样。Loadbalancer不了解安全性,也不需要证书

有两个陷阱:

  • 承载WCF服务的所有负载平衡应用程序服务器必须使用相同的证书
  • 您必须确保您的WCF绑定不使用会话(可靠、安全),否则您将需要具有粘性会话的负载平衡算法(单个会话的所有请求始终路由到同一服务器)

如果消息本身未签名/加密,WCF要求通过安全传输传递安全令牌。由于大IP和单个web服务器之间的通信量是HTTP,因此您需要一种方法,使您知道在客户端和大IP之间受保护的安全令牌仍然可以传递到服务器场。根据您使用的WCF版本,有两种方法可以做到这一点:

如果您使用的是WCF 4.0,则只需创建一个自定义绑定,并在内置的
SecurityBindingElement
上设置属性,表示您不关心传输是否安全

如果您使用的是WCF 3.5,则必须在服务器端使用自定义的
TransportSecurityBindingElement
来“撒谎”安全性。你可以读我以前的帖子



FWIW,他们为3.5 SP1创建了一个新版本,在该版本中添加了
AllownSecureTransport
,但我不知道贵公司是否允许您安装自定义修补程序。

有趣的答案。如果有人能验证这一点会更有趣吗?我在一个真实的系统中验证了很多次。保存您的理智,不要在负载平衡场景中使用WCF w/SSL。我问了一个最近获得WCF MCP认证的家伙,他没有任何线索。让我们假设场景不在MS的WCF应该做的事情列表的顶部。如果你真的想让它工作起来的话,你可能想在推特上打扰格伦·布洛克。祝你好运我不能用别的框架,所以我必须处理WCF。你在比较完全不同的技术。如果你想使用消息安全性,你不需要SSL。但是如果你使用消息级安全性,WCF不要求你拥有SSL证书。它需要证书,但不用于建立SSL连接。@Ladislav,很抱歉我的混淆。这就是我的意思。如果证书由负载平衡器处理,我是否需要在wcf配置文件中指定该证书,或者负载平衡器是否为我处理该证书。我想我需要在wcf中指定证书的位置,因为一旦我指定了消息安全性,它就会告诉我我需要一个证书。这是正确的吗?您所说的“没有安全连接…”是什么意思?当您说所有负载平衡的服务器必须使用相同的证书时,您是指负载平衡器后面的服务器吗?你还说绑定不使用安全性,你指的是消息安全性吗?我想你还没有完全理解。我指的是负载平衡器后面的服务器。我没有提到您不使用安全性,我提到您不能使用安全会话,也称为安全上下文或安全对话。好的,明白了。因此,如果在负载平衡器上安装了证书,我是否需要在wcf配置文件中指定证书的详细信息?好吧,我希望如果有人否决了答案,他也会指出错误或发布自己的正确答案。我们永远无法让AllownSecureTransport处理安全端绑定。祝你好运,唯一的问题是OP不知道他想要什么。标题要求使用传输安全性进行负载平衡,问题是使用消息安全性进行负载平衡。@LadislavMrnka-我认为OP的意思是
TransportWithMessageCredential
,但不确定。有一个问题,如果我的绑定安全性看起来像
-我使用的是传输安全性吗?@LadislavMrnka-我正要阅读你的答案,请稍候:)@VoodooChild:是的,你仍然在使用传输安全性,但你也在使用标准化的SOAP头向服务器传递证书凭据。