我的目标是在 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 端点。没有服务器证书已指定,但默认开发者证书找不到或已过期。”
如何解决这个问题?
我面临着同样的问题,正在尝试寻找解决方案。
到目前为止,我的研究让我沿着以下思路思考。
这些资源帮助我走上正确的道路,并积累了正确解决这个问题的知识。
祝你好运!