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

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

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

在使用负载均衡器运行时,是否需要将SSL拉高到负载均衡器的水平? 是否有一个SSL连接的状态元素将通过转发仍然encryption的stream量而丢失?

恐怕答案会是“视情况而定”。 当我在网上银行安全工作的时候,我有机会深入研究一下。 虽然这是几年前的事情,但是别人可能会想出一些我忘记或者那些年来改变的东西。

在负载平衡器处终止SSL的缺点

  • 首先,通过这样做可能会失去状态 – 如果您的应用程序正在运行,需要一些SSL头来保持状态。 如果是这样,您可能会失去这些信息(尽pipe您可能能够configuration您的负载平衡器以某种方式转发它)。 例如,如果您使用客户端证书进行身份validation。

  • 其次,正如Bazze所说,这确实使得你的stream量很容易被窃听到本地networking。 这个危险有多大,当然取决于你的networking是什么样的,以及它是什么样的stream量。

优点

  • 您可以减轻Web服务器的负载,因为他们不再需要将资源用于解密和encryption。

  • 当你改变你的web服务器configuration时,你可以做一个简单的apache重新加载而不必input你的SSL密码。 这意味着您可以将其自动化,从而实现持续部署和开发以及所有stream行语。 (另一方面,改变你的LBconfiguration可能需要你input密码,但作为一个规则,这是你不经常做的事情与apacheconfiguration摆弄…)

  • 对networking服务器和应用程序进行故障排除只是简单得多,因为您现在可以直接snoop / tcpdump传入stream量。

  • 您处理SSL错误/安全漏洞的位置较less。 在一个LB上更改SSL设置通常比在大量的Web服务器上更容易 – 特别是如果这些服务器由来自不同部门的许多不同人员pipe理的话。

  • 如果只有一个地方进行审核,审核SSL也会容易得多。

  • 跟踪哪些证书正在使用以及什么时候需要更新证书时,更容易一些。 你不再有鲍勃已经订购了一个证书的问题,并把他的个人电子邮件地址在系统中提醒,然后退出或被解雇,使提醒反弹和证书过期,突然之间,你有很多不满的人要求它现在得到修复 (不是说我曾经工作过的任何地方都有过, 咳嗽

结论

终止是否是一个好主意取决于你如何评价各种优点和缺点。 通常情况下,除非有充分的理由否则,否则您将希望尽早消除复杂性 – 如果从安全性和可用性angular度来看是合理的,或者在之后可能。

我会说在负载均衡器或服务器级别终止SSLstream量取决于你是否可以在两者之间进行未encryption的stream量。 在大多数情况下,从负载均衡器到服务器的stream量正在私有networking中传输,您不必关心窃听和中间人攻击(与通过networking的stream量相比)公共互联网)。

离开terminalELB还可以节省您自己终止stream量的额外工作。

在这里您可以阅读更多关于它的信息: https : //security.stackexchange.com/a/30413

一些额外的想法:1.如果您正在寻找PCI合规性,则需要encryption“传输中的数据”,因此您必须将encryptionstream量传递到您的应用程序,或者在LB和您的应用程序服务器之间重新encryption。

  1. 在LB上解密需要处理你的应用服务器的负载,这是在LB上终止SSL的主要原因。