我目前已在 AWS ECS 中使用 nginx 反向代理架构和 Docker 设置了我的网站。但是,现在我面临着使用 HTTPS 保护我的网站的问题。
我在 google 上搜索了几个小时,并获得了我的 Amazon 证书管理器,并使用我的集群服务设置了应用程序负载均衡器,但没有成功。 我的 nginx.conf 正在监听端口 80,而我的内部服务也托管在端口 80 上。 Cloudflare 将我的网站路由到带有 *.domain.com 的每个服务。
那么我可能缺少的步骤到底是什么,或者有没有合适的指南可供我引用?我希望使用亚马逊证书管理器来完成它,最好是自动续订。第二个选项是由 LetsEncrypt 手动签名的证书。但我不知道如何存储证书,因为我的存储库现在是公开的。
我目前有 2 个网址。 domain.com 和 api.domain.com,两者都在同一 ECS 实例上运行。是否可以保护两者的安全,因为这是必要的,以便我可以从前端进行后端调用(HTTPS 请求策略)。
提前谢谢大家!
更新:
我终于让我的 SSL 可以与我的域一起使用了。对于那些遇到同样问题的人。尝试使用经典负载均衡器,我多次尝试使用应用程序负载均衡器并映射到不同的端口,但它不起作用。但当我使用 Classical Load Balancer 时它就起作用了。
最佳答案
Cloudflare 应该将所有内容路由到 ALB,而不是直接路由到 ECS。您必须通过 ALB 路由所有流量,以便 ALB 提供 SSL 证书。
当您在 ACM 中请求证书时,您可以列出您希望该证书适用的多个域。使证书适用于您的域和每个可能的子域的最简单方法是请求“domain.com”和“*.domain.com”的证书。
关于amazon-web-services - Amazon Web Service ECS (SSL/HTTPS) 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45401584/