HTTPS重定向到AWS中的网站

时间:2017-04-21 17:09:35

标签: amazon-web-services redirect amazon-s3 amazon-cloudfront amazon-route53

我有以下设置:

  • 托管在S3存储桶中的文档网站
  • 使用该存储桶作为其来源的CloudFront分配,接受HTTP或HTTPS流量
  • 通过Route 53注册的3个自定义域名;我们称他们为example.com.net.org
  • 这3个域的ACM证书,因此HTTPS可以正常工作
  • example.com Hosted Zone有一个指向CloudFront分配的ALIAS记录,因此http://docs.example.comhttps://docs.example.com将显示该网站。

现在,我想将以下重定向规则放在适当的位置。基本上,所有内容都应该使用用户最初请求的协议重定向到docs.example.com。

  1. http://docs.example.net> http://docs.example.com
  2. https://docs.example.net> https://docs.example.com
  3. http://docs.example.org> http://docs.example.com
  4. https://docs.example.org> https://docs.example.com
  5. 这是我遇到麻烦的地方。如果我将具有ALIAS记录的.net.org子域指向CloudFront分配,则该URL仍会显示该子域,而不是.com。如果我使用带有重定向规则的.net.org子域命名的S3存储桶到.com,并将ALIAS记录添加到这些存储桶,那么一切都适用于HTTP,但HTTPS失败b / c ACM证书仅适用于CloudFront,而不适用于S3。如果我尝试将CNAME记录添加到指向.net的{​​{1}}和.org子域,则HTTPS仍然会失败,并且由于某种原因HTTP还会重定向到HTTPS。

    根据此SO post,看起来我唯一的选择就是创建另外两个CloudFront分配,一个用于.com,另一个用于.net。但这听起来只是所以过度设计给我,并且真的会膨胀我用来完成所有这些的CloudFormation模板。

    有人可以推荐更简单的解决方案吗?

1 个答案:

答案 0 :(得分:0)

CF中没有直接的方法来跨域重定向(即使.com .org和.net链接到同一个发行版)。我建议的最简单的方法是在Cloudfront中使用AWS Edge Lambda来相应地重定向。