0

我有以下设置:HTTPS重新导向;网站在AWS

  • 一个文档网站的S3存储桶托管
  • 使用水桶为原点,接受HTTP或HTTPS流量
  • 一个CloudFront的分布通过Route 53注册的3个自定义域名;我们称它们为example.com,.net.org
  • 对于那些3个域的ACM证书,以便HTTPS将工作
  • 托管区example.com有指向CloudFront的分布别名记录,所以http://docs.example.comhttps://docs.example.com将显示网站。

现在,我想把下面的重定向规则到位。基本上,一切都应该重定向到docs.example.com,使用用户最初请求的任何协议。

  1. ​​>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

这是我在遇到麻烦。如果我在CloudFront分配中使用ALIAS记录指出.net.org子域,则该URL仍将显示该子域,而不是.com。如果我创建的S3存储区以.net.org子域名命名,并且重定向规则为.com,并将ALIAS记录添加到这些存储桶,那么对于HTTP而言,一切正常,但HTTPS会失败,B/c ACM证书仅适用于CloudFront,而不适用于S3 。如果我尝试将CNAME记录添加到指向.com.net.org子域中,则HTTPS仍会失败,并且由于某些原因,HTTP也会重定向到HTTPS。

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

任何人都可以推荐一个更简单的解决方案吗?

回答

0

在CF中没有直接的方法来跨域重定向(即使.com .org和.net链接到同一分布)。我可以推荐的最简单的方法是在Cloudfront中使用AWS Edge Lambda进行相应的重定向。

+0

感谢您的建议。那个链接被破坏了! – Rabadash8820

+0

谢谢提及。更正了链接。 – Ashan