【问题标题】:Amazon Web Service ECS (SSL/HTTPS) Issue亚马逊网络服务 ECS (SSL/HTTPS) 问题
【发布时间】:2017-08-03 12:49:28
【问题描述】:

我目前在 AWS ECS 中使用 Docker 的 nginx 反向代理架构建立了我的网站。但是,现在我面临着使用 HTTPS 保护我的网站的问题。

我已经搜索了几个小时,并获得了我的 Amazon 证书管理器,并使用我的集群服务设置了一个应用程序负载均衡器,但无济于事。 我的 nginx.conf 正在侦听端口 80,而我的内部服务也托管在端口 80 上。 Cloudflare 使用 *.domain.com 将我的网站路由到每个服务。

  • 那么,我可能遗漏的步骤到底是什么,或者那里有什么合适的指南可以参考?我希望使用 Amazon Certificate Manager 来启动它,最好使用自动续订。第二个选项是letsencrypt的手动签名证书。但我不知道如何存储证书,因为我的存储库现在是公开的。

  • 我目前有 2 个网址。 domain.com 和 api.domain.com,它们都运行在同一个 ECS 实例上。是否有可能保护它们,因为这是必要的,以便我可以从我的前端进行后端调用(HTTPS 请求策略)。

提前谢谢各位!

更新:

我终于让我的 SSL 与我的域一起工作。对于那些遇到同样问题的人。尝试改用经典负载均衡器,我多次尝试使用 Application Load Balancer 并映射到不同的端口,但它不起作用。但它在我使用经典负载均衡器的那一刻起作用。

【问题讨论】:

    标签: amazon-web-services docker nginx https amazon-ecs


    【解决方案1】:
    1. Cloudflare 应该将所有内容路由到 ALB,而不是直接路由到 ECS。您必须通过 ALB 路由所有流量,以便 ALB 提供 SSL 证书。

    2. 当您在 ACM 中请求证书时,您可以列出您希望证书适用的多个域。使证书适用于您的域和每个可能的子域的最简单方法是为“domain.com”和“*.domain.com”申请证书。

    【讨论】:

    • 感谢您的回答,但在 Cloudflare 的 ALB 中我没有看到任何 IP 可以路由到。另外,这是否意味着我必须设置 2 个 ALB,因为我只能为每个 ALB 设置一个证书。
    • 您不能将 IP 路由与 AWS 负载均衡器一起使用。您必须指向 DNS 名称。 Route53 为此提供了别名机制,但由于您使用的是 Cloudflare,因此您应该考虑使用 CNAME 扁平化:blog.cloudflare.com/…
    • 关于 SSL 证书,正如我在回答中试图解释的那样,您从 ACM 请求一个适用于多个域的证书。然后,当您将该单个证书附加到 ALB 时,它能够终止您请求的所有域的 SSL 连接。
    • 谢谢,我对发生的事情有了更好的了解。只是一个简单的问题,我的 nginx.conf 中目前没有任何 SSL 配置,如何让 nginx 在没有任何内容的情况下读取 SSL?
    • SSL 在负载均衡器处终止。 Nginx 不需要做任何事情来让 SSL 与该配置一起工作。
    猜你喜欢
    • 1970-01-01
    • 2017-09-02
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多