9

我正在尝试最简单的部署以在 Fargate 中启动并运行 https Web 服务器。

我已经使用 Amazon Certificate Manager 创建了一个公共证书

我有一个 Application Load Balancer 在两个端口上与 Fargate 容器通信:80 用于 http,443 用于 https

这就是问题所在:当我在端口 80 (http) 上运行我的网络服务器并通过 ALB 连接时,它工作正常(不安全,但它提供了 html)。

当我在启用 TLS 的端口 443 上运行我的网络服务器时,它不会通过 ALB 连接。

另一点是,当在端口 443 上启用了 TLS 运行我的网络服务器时,我没有证书或证书密钥,因此很困惑如何从 Amazon 获取。

我的另一个问题是:说 ELB 将通过 HTTPS 与客户端通信但 ELB 可以通过 HTTP 与容器通信对我来说有意义吗?这安全吗?

感谢您的帮助,我的网络知识非常生疏。

4

1 回答 1

9

我说 ELB 将通过 HTTPS 与客户端通信,但 ELB 可以通过 HTTP 与容器通信,这是否有意义?

是的。您应该确保您的 Web 服务器在端口 80 上接受来自 ALB 的流量。这是在应用程序级别、在 Web 服务器上以及与您的目标组完成的,这是 ALB 将用来确定将流量路由到的方式您的网络服务器。这是它通常的工作方式:

client --(443)--> ALB --(80)--> web server

需要检查的一些事项:

  • 目标组配置为在端口 80 上向 FG Web 服务器发送流量
  • 目标组健康检查配置为检查端口 80
  • FG 任务安全组在端口 80 上有来自 ALB 的入口
  • Web 服务器配置为侦听端口 80

旁注:您可以将目标组配置为在 443 上将流量发送到目标(Fargate 中的 Web 服务器),但正如您所说,如果容器中没有正确的证书设置,您将无法正确终止 SSL,它只是行不通。您需要将自己的证书上传到 ACM 才能正常工作,这会让您陷入安全漏洞,即如何避免将您的私钥烘焙到 Docker 映像中。

于 2018-09-10T14:36:29.427 回答