过去一周左右,我一直在掌握AWS的世界,更具体地说是Elastic Beanstalk和负载均衡......
我正在开发的应用程序使用我正在全局应用的自定义RequireHttps属性强制执行SSL / HTTPS连接。我最初在使用此设置配置负载均衡器时遇到问题,但它似乎确实按预期工作。
我的问题源于a blog post我在设置Load Balancer / RequireHttps属性的过程中瞥了一眼。引用此博客文章:
使用Elastic Beanstalk时...负载均衡器和应用程序服务器之间的连接不安全。但是,您不需要关心负载均衡器和服务器之间连接的安全性,但您需要关注客户端和负载均衡器之间的连接。
由于配置负载平衡器对我来说是一个全新的领域,我有点怀疑以上是完全正确的。
负载均衡器和服务器之间的连接真的不关心吗? 不在Load Balancer上终止SSL并将sercure连接直接传递给服务器会更好吗?
答案 0 :(得分:1)
经过一番深入研究后,我偶然发现了以下有关security.stackexchange的帖子/讨论:Should SSL be terminated at a load balancer?
makerofthings7:
在我看来,问题是“你相信自己的数据中心”。换句话说,看起来你正试图精确地划出不信任网络所在的界限,信任就开始了。
在我看来,SSL / TLS信任应该终止于SSL卸载设备,因为管理该设备的部门通常也管理网络和基础设施。那里有一定数量的合同信任。在下游服务器上加密数据是没有意义的,因为支持网络的人通常也可以访问它。 (在多租户环境中可能例外,或者需要更深入细分的独特业务需求)。
SSL应该在负载均衡器处终止的第二个原因是它提供了一个集中的位置来纠正诸如CRIME或BEAST之类的SSL攻击。如果SSL在各种Web服务器上终止,运行在不同的操作系统上,由于额外的复杂性,您更有可能遇到问题。保持简单,从长远来看,你会遇到更少的问题。
我可以看到@ makerofthings7所说的是有道理的。 SSL是否在Load Balancer或Server上终止应该没什么区别。