将 Application Load Balancer 与 HTTPS 结合使用

Using Application Load Balancer with HTTPS

这是我第一次使用负载均衡器...我花了很多时间阅读文档,但我仍然很困惑。

我想托管我的网站。我的网站仅支持 HTTPS 。我想将我的后端服务器放在 Application Load Balancer 后面。

我正在使用 AWS 的默认 VPC,我创建了一个 ALB (myALB) 并在其上安装了我的 SSL 证书。我还创建了 2 个 EC2 实例(myBackEndServer1 和 myBackEndServer2)。

问题:

  1. 后端服务器和myALB之间的通信应该是 通过 HTTP 或 HTTPS?
  2. 我已经在 myALB 上创建了一个 HTTPS 侦听器,我是否还需要一个 HTTP myALB 上的听众?我想要的是将任何 HTTP 请求重定向到 HTTPS(我相信这应该发生在 myALB 上)?
  3. 我想使用外部 ID 登录(使用 Facebook)。我已经设置了 Facebook 登录以使用 HTTPS 。之间是否通信 Facebook 和我的后端服务器通过 myALB?我的意思是,我要么 我的后端服务器需要 HTTPS,或者与 facebook 的通信 应该通过 myALB。

如果有任何一般性建议,我将不胜感激。

  1. 您可以同时使用 HTTP 和 HTTPS 侦听器。
  2. 是的,您可以使用 ALB 实现。您可以向其添加一条规则,规定任何到达端口 80 的请求都将永久重定向到端口 443。查看 rules 的 ALB。
  3. 如果您从您的实例向 Facebook 发出请求 - 这取决于 Facebook,您的通信是否会被加密,因为在这种情况下您是客户。但是,如果您设置了一些 webhook,Facebook 现在是一个客户端并与您通信,您需要提供负载均衡器的 DNS 名称。并且由于此列表中的第 2 点,Facebook 将被迫使用 TLS。

我不确定我是否完全理解您的第三个问题,但这里的 something 您可能也会觉得有用。 ALB 具有一些允许使用 Cognito 对用户进行身份验证的功能。它明确表示您的 EC2 实例可以从任何身份验证中抽象出来,即使它使用 Facebook ID 或 Google Id 或其他任何东西。虽然从未尝试过。