2017-07-30 64 views
1

我目前在AWS ECS中使用带有Docker的nginx反向代理架构设置了我的网站。但是,现在我正面临着使用HTTPS保护我的网站的问题。亚马逊网络服务精英版(SSL/HTTPS)问题

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

  • 那么究竟是什么步骤,我可能会失踪或有任何适当的指导,我可以参考?我希望能够使用亚马逊证书管理器进行升级,最好是通过自动续订。第二个选项是由letsencrypt手动签名的证书。但我不知道如何存储证书,因为我现在的存储库是公开的。

  • 我目前有2个url。 domain.com & api.domain.com,它们都在相同的ECS实例上运行。是否可以保护它们,因为这样做可以使我可以从我的前端进行后端调用(HTTPS请求策略)。

在此先感谢家伙!

更新:

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

回答

1
  1. Cloudflare应将所有内容路由到ALB,而不是直接发送给ECS。您必须通过ALB路由所有流量,以便ALB提供SSL证书。

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

+0

感谢您的回答,但我没有看到任何IP将我路由到ALB for Cloudflare。另外,这是否意味着我必须设置2个ALB,因为我只能为每个ALB设置一个证书。 –

+0

您不能在AWS负载均衡器中使用IP路由。您必须指向DNS名称。 Route53为此提供了一个Alias机制,但由于您使用的是Cloudflare,因此您应该使用CNAME展平:https://blog.cloudflare.com/introducing-cname-flattening-rfc-compliant-cnames-at-a-domains -root/ –

+0

关于SSL证书,正如我试着在我的答案中解释的那样,您从ACM请求一个适用于多个域的单一证书。然后,当您将该单一证书附加到ALB时,它可以终止您请求的所有域的SSL连接。 –