我们的系统管理员设置了一个负载均衡器,它可以处理所有 HTTPS 请求,并将它们作为 HTTP 代理到服务器。服务器没有 HTTPS,因此 LB 和服务器之间的连接不安全,但到 LB 的连接是安全的。我从未见过这样的事情,我不确定这是否是正确的做法。实际的服务器不公开,只能通过负载均衡器访问。
这足以保证其安全吗?可以绕过负载均衡器吗?
这是一个标准技术吗?
答案1
这通常称为“SSL 卸载”,在大型设置中相当常见。它可以减少后端服务器的负载,因为许多硬件负载平衡器都有特殊的加密芯片,可以高速处理大量 SSL 流量。另一个好处是,您只需将 SSL 证书及其私钥存储在一个地方,并且只有在证书即将到期时才需要在那里更换它。
确保安全的一项要求是,进行负载平衡的节点无法通过任何其他方式访问。通常,这些节点仅连接到私有 IP 地址,这些地址甚至在网络内也不会路由,因此服务器和负载平衡器之间只有一个第 2 层(以太网)网络,没有其他方式连接到服务器。
在某些情况下(例如托管符合 PCI 标准的设置),这还不够,因此通常会使用 SSL 重新加密。在这种情况下,负载均衡器和服务器之间的连接也是通过 SSL 进行的。负载均衡器解密来自客户端的流量,发挥其魔力(例如,选择正确的节点来代理流量,做一些重写技巧等),然后在连接到后端服务器时再次加密它。
答案2
如果负载均衡器和内部服务器之间的网络是安全的,不会被窃听,那么它们之间使用 http 还是 https 都没有区别。