gpt4 book ai didi

ssl - 支持带 ELB 的双向 TLS/HTTPS

转载 作者:太空宇宙 更新时间:2023-11-03 12:38:11 25 4
gpt4 key购买 nike

使用 Amazon Elastic Load Balancing 的一种方式(或服务器端)TLS/HTTPS 是 well documented

文档中对双向(或客户端)TLS/HTTPS 的支持并不明确。

假设 ELB 正在终止 TLS/HTTPS 连接:

  1. ELB是否支持client authenticated HTTPS 连接?
  2. 如果是这样,ELB 服务的服务器是否收到 X-Forwarded-* header 来识别 ELB 认证的客户端?

ELB 确实支持 TCP 转发,因此 EC2 托管服务器可以建立双向 TLS/HTTPS 连接,但在这种情况下,我对 ELB 终止 TLS/HTTPS 连接并识别客户端感兴趣。

最佳答案

在双端 HTTPS 模式下,我看不出它是如何实现的,因为 ELB 正在建立到后端服务器的第二个 TCP 连接,并且在内部它正在解密/加密来自客户端和服务器的负载...所以服务器不会直接看到客户端证书,并且除了 -For、-Proto 和 -Port 之外没有记录的 X-Forwarded-* header 。

另一方面,对于以 TCP 模式运行的 ELB,SSL 协商直接在客户端和服务器之间完成,ELB 盲目地将流绑定(bind)在一起。如果服务器支持 PROXY protocol , 你可以 enable that functionality in the ELB这样您就可以在服务器上识别客户端的原始 IP 和端口,并直接识别客户端证书,因为客户端将直接与您协商......尽管这意味着您不再将 SSL 卸载到 ELB,这可能成为你正在尝试做的事情的一部分。


更新:

看起来似乎没有一种方法可以单独使用 ELB 来完成您想做的所有事情——卸载 SSL 并识别客户端证书。以下信息“物有所值”。

显然 HAProxy 有 support for client-side certificates in version 1.5 , 并在 X- header 中传递证书信息。由于 HAProxy 还通过配置支持 PROXY 协议(protocol)(类似于 tcp-request connection expect-proxy )...连接和转发来自 ELB 的客户端 IP/端口信息(通过 PROXY 协议(protocol)) 和客户端证书信息到应用程序服务器。 . 从而允许您仍然保持 SSL 卸载。

我提到这个是因为它似乎是一个互补的解决方案,可能比任何一个单独的平台都更完整,而且,至少在 1.4 中,这两个产品可以完美地协同工作——我在 ELB 后面成功地使用了 HAProxy 1.4我最大的网络平台上的请求(在我的例子中,ELB 正在卸载 SSL——没有客户端证书),尽管级联负载平衡器明显冗余,但它似乎是一个可靠的组合。我喜欢让 ELB 成为糟糕的互联网上唯一的东西,尽管我没有理由认为直接暴露的 HAProxy 本身会有问题。在我的应用程序中,ELB 用于在 A/Z 中的 HAProxies 之间进行平衡(我原本打算也自动缩放,但即使在我们的繁忙季节,CPU 利用率仍然很低,我从来没有超过一个可用区,而且我从来没有丢失过一个,但是......)然后它可以在将流量传递到实际平台之前进行一些过滤,转发和修改 header 除了给我ELB 本身没有的一些日志记录、重写和流量拆分控制。

关于ssl - 支持带 ELB 的双向 TLS/HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21245852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com