如果您正在使用 SSL,是否需要在外部负载均衡器上配置 SSL?

Liz*_*izH 3 ssl load-balancing

使用 Elastic Load Balancer,很容易在外部负载均衡器上设置 SSL,并将请求作为 http 提供给应用程序。

运行单个服务器时,还可以在 Web 服务器 (Tomcat) 或应用程序 (Spring) 上配置 SSL。

使用负载均衡器运行时,是否需要将 SSL 拉到负载均衡器的级别?转发仍然加密的流量是否会丢失 SSL 连接的状态元素?

Jen*_*y D 6

恐怕答案是“视情况而定”。当我从事网上银行安全工作时,我有机会深入研究一下。不过,这是几年前的事了,所以完全有可能其他人会想出我忘记的东西,或者在那几年里有所改变。

在负载均衡器上终止 SSL 的缺点

  • 首先,这样做可能会丢失状态 - 如果您正在运行的应用程序需要一些 SSL 标头来保持状态。如果是这样,您可能会丢失该信息(尽管您可以配置负载平衡器以某种方式转发它)。一个示例可能是您使用客户端证书进行身份验证。

  • 其次,正如 Bazze 所说,它确实使您的流量容易受到本地网络上的窃听。这有多大的危险当然取决于你的网络是什么样的,以及它是什么类型的流量。

好处

  • 您正在减少网络服务器的负载,因为它们不再需要将资源花在解密和加密上。

  • 当您更改您的网络服务器配置时,您可以进行简单的 apache 重新加载,而无需输入您的 SSL 密钥密码。这意味着您可以将其自动化,从而实现持续部署和 DevOps 以及所有流行语。(另一方面,更改 LB 配置可能需要您输入密码,但通常情况下,您不会像摆弄 apache 配置那样经常这样做……)

  • 对您的网络服务器和应用程序进行故障排除变得更加容易,因为您现在可以直接监听/tcpdump 传入的流量。

  • 处理 SSL 错误/安全漏洞的地方较少。在一个 LB 上更改 SSL 设置通常比在大量网络服务器上更改 SSL 设置要容易得多 - 特别是如果这些服务器由来自不同部门的许多不同人员管理。

  • 当只有一个地方可以审计时,对 SSL 的审计也会容易得多。

  • 当它们都在一个地方时,跟踪正在使用的证书以及何时需要更新证书要容易得多。您不再遇到 Bob 订购了证书并将他的个人电子邮件地址放入系统中以供提醒的问题,然后退出或被解雇,以便提醒反弹并且证书过期,突然间您有很多心烦意乱的人要求这样做现在就修好了!(并不是说我工作过的任何地方都发生过这种情况!

结论

在 LB 处终止是否是个好主意将取决于您如何评价各种优点和缺点。通常,我会说除非有充分的理由不这样做,否则您将希望尽早消除复杂性 - 如果从安全性和可用性的角度来看这是合理的,则在网络边界,或者在此之后尽快消除可能的。