如何在 ECS Fargate 容器中安装证书以启用一直到容器的 TLS

问题描述 投票:0回答:1

我的目标是在 AWS ECS Fargate 容器本身上启用 ssl/tls,这是公司的要求。我知道 ALB 处有 ssl 终止,并让 ALB 与 http 上的任务进行通信。然而,就我而言,我需要更进一步,在容器上启用 TLS,这样流量将一直加密到我的容器。

我已经浏览了谷歌的大量帖子,但不幸的是无法找到任何我可以实施的解决方案。

我正在使用 VS 2022 在框架 6.0 上构建我的 .net core mvc 解决方案。在我的 locahost 上,我的 Visual Studio 很友善地询问我是否要启用 SSL 并为我创建自签名证书,并允许我在 docker 配置文件下运行我的解决方案,并允许我通过 https://localhost 访问。 .

到目前为止一切都很好,只是要注意的是,我没有做任何额外的事情来通过 https://

提供该网站

现在,我构建了我的 docker 映像并将其部署到 AWS 并在 Fargate 下运行它,在这里我获取了正在运行的任务的 IP 地址并尝试使用 https:// 访问它,显示消息(在 google chrome 中)“该站点确实没有证书”

接下来,通过谷歌搜索,我找到了可以传递环境变量的地方,如下所示,我正在这样做

aspnetcore_environment=development
aspnetcore_urls=https://+:443;http://+:80

将上述内容添加到我的“Task Rivision”后 - 并使用此任务定义创建新服务 - 甚至不会让我的任务运行时出现错误(cloudwatch 日志) - “System.InvalidOperationException:无法配置 HTTPS 端点。没有服务器证书已指定,但默认开发者证书找不到或已过期。

如何解决这个问题?

docker asp.net-core amazon-ecs aws-fargate
1个回答
0
投票

我面临着同样的问题,正在尝试寻找解决方案。

到目前为止,我的研究让我沿着以下思路思考。

  1. 在“互联网客户端”(无论是 Cloudfront、API 网关等)与 ALB 之间建立 TLS。使用 AWS ACM 获取这些证书,因为它免费且易于设置。
  2. 将目标组设置为使用 HTTPS 协议来启用 TLS。
  3. 使用反向代理 sidecar 以及自签名证书构建 Docker 映像。
  4. 配置反向代理以使用自签名证书+私钥,将传入的 HTTPS 流量转换为 HTTP,并将其转发到您的“应用程序”容器。

这些资源帮助我走上正确的道路,并积累了正确解决这个问题的知识。

祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.