【问题标题】:How does WCF + SSL working with load balancing?WCF + SSL 如何与负载平衡一起工作?
【发布时间】:2011-06-01 19:21:00
【问题描述】:

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

【问题讨论】:

  • 如果你想使用消息安全,你不需要 SSL。
  • 但是如果您使用消息级安全性,wcf 不要求您拥有 ssl 证书。
  • 需要证书但不用于建立SSL连接。
  • @Ladislav,对不起我的困惑。这就是我的意思。如果证书由负载均衡器处理,我是否需要在 wcf 配置文件中指定证书,或者负载均衡器是否会为我处理。我想我需要在 wcf 中指定证书的位置,因为一旦我指定了消息安全性,它就会告诉我我需要一个证书。这是正确的吗?

标签: wcf ssl load-balancing


【解决方案1】:

如果消息本身未签名/加密,WCF 要求通过安全传输传递安全令牌。由于您的 Big-IP 和您的个人 Web 服务器之间的流量是 HTTP,因此您需要一种方法来让您知道在客户端和 Big-IP 之间受到保护的安全令牌仍然可以传递到您的服务器场。有几种方法可以做到这一点,具体取决于您使用的 WCF 版本:

如果您使用 WCF 4.0,您只需创建自定义绑定并在内置 SecurityBindingElement 上设置 AllowInsecureTransport 属性,以表示您不关心传输不安全。

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

FWIW,他们为 3.5 SP1 创建了 a hotfix release,将 AllowInsecureTransport 添加到该版本,但我不知道贵公司是否允许您安装自定义修补程序。

【讨论】:

  • 我们永远无法让 AllowInsecureTransport 在安全端绑定上工作。祝你好运。
  • 唯一的问题是 OP 不知道他想要什么。标题是要求使用传输安全进行负载平衡,问题是要求使用消息安全进行负载平衡。
  • @LadislavMrnka - 我认为 OP 的意思是 TransportWithMessageCredential 但不确定。一个问题,如果我的绑定安全性看起来像 <security mode="TransportWithMessageCredential"> <transport clientCredentialType="None" proxyCredentialType="None" realm="" /> <message clientCredentialType="Certificate" /> </security> - 我使用的是传输安全性吗?
  • @LadislavMrnka- 我正要阅读你对stackoverflow.com/q/5673283/247184 的回答,所以请稍等:)
  • @VoodooChild:是的,您仍在使用传输安全性,但您还使用标准化的 SOAP 标头将证书凭据传递给服务器。
【解决方案2】:

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

有两个陷阱:

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

【讨论】:

  • “没有安全连接..”是什么意思,当您说所有负载平衡服务器必须使用相同的证书时,您指的是负载平衡器后面的服务器吗?您还说绑定不使用安全性,您指的是消息安全性吗?
  • 好吧,我想你还没有完全理解difference between transport and message security。
  • 我指的是负载均衡器后面的服务器。我没有提到你不使用安全,我提到你不能使用安全会话,也称为安全上下文或安全对话。
  • 好的,知道了。那么如果负载均衡器上安装了证书,是否需要在 wcf 配置文件中指定证书的详细信息?
  • 好吧,我希望如果有人对答案投了反对票,他也会指出错误的地方或发布他自己的正确答案。
【解决方案3】:

它没有。不要为此烦恼。你将进入一个受伤的世界。只需在每台机器上安装证书。我们最近经历了这场惨败。 WCF 不值得付出它认为它需要 SSL 但认为它没有它的努力。如果您想在负载均衡器上执行所有 SSL,请查看 openrasta 或其他内容。 #microsoftfail

【讨论】:

  • 有趣的答案。如果有人可以验证这一点会更有趣吗?
  • 我在真实系统中验证了很多次。保持理智,不要在负载平衡场景中使用带 SSL 的 WCF。
  • 我问了一个最近获得 WCF MCP 认证的人,他不知道。假设该场景不在 MS 的 WCF 应该做什么列表的顶部。如果你真的想让它工作,你可能想在 Twitter 上给 Glenn Block 发错误。祝你好运。
  • 好吧,我不能使用其他框架,所以我必须处理 WCF。
  • 你在比较完全不同的技术。
猜你喜欢
  • 2011-08-04
  • 2011-09-20
  • 2022-01-10
  • 2011-04-21
  • 2023-04-04
  • 2013-12-19
  • 2014-01-09
  • 2016-02-21
  • 1970-01-01
相关资源
最近更新 更多