首页 > 解决方案 > Cloudfront 域名无法使用 S3、Cloudfront 和 Route 53 将 HTTP 重定向到 HTTPS

问题描述

第一篇在这里 - 你好,stackoverflowers :)

网站问题。在 Google 上购买了域名,托管在 S3 上。使用路由 53 重定向请求。在 S3 中创建了 2 个公共存储桶,example.com 和 www.example.com(example.com 重定向到 www)
网站工作 - 是的!现在让我们获取 https
通过路由 53 DNS 确认获取 *.example.com 的 SSL 亚马逊证书。将其上传到我的云端发行版(并在确保 http 重定向到 https 的参数中)。
根据这篇文章(如何使用 S3、Cloudfront 和 Route 53 使用裸域将 HTTP 重定向到 HTTPS?),我现在需要将请求从路由 53 重定向到 Cloudfront 域名。

但是Cloudfront 域名给出了错误消息(见下文)。它可能来自哪里?(我知道这应该是https网站链接没有?) 错误信息

仅供参考,不要使用 EC2 实例。我知道还有另一种通过像 Namecheap 这样的提供商获得 SSL 的方法——但它似乎要复杂得多(与亚马逊免费提供的相比)。

标签: csssslamazon-s3amazon-cloudfrontbucket

解决方案


可能您的 CloudFront 源指向错误的端点。不要从源列表中选择自动建议的存储桶,而是显式复制 S3 存储桶中“静态网站托管”下显示的端点,该端点应类似于example.com.s3-website-us-east-1.amazonaws.com. 否则,您将指向 S3 存储桶 HTTP 接口,而不是网站主机。

只是为了确保,整个过程基本上是:

  1. 首先在 Route 53 中设置域区域,以便下一步存在。
  2. 在区域 US-East-1(弗吉尼亚北部,重要!)中,在证书管理器中为域创建证书请求。使用 DNS 验证,并让 AWS 将所需的记录自动插入到您在 1 中创建的 Route 53 配置中。
  3. 创建 S3 存储桶。
  4. 明确设置自定义存储桶策略以允许匿名访问
  5. 为存储桶启用“静态网站托管”。注意显示的端点。
  6. 创建 CloudFront 分配,将您的域名添加为备用域名,从列表中选择 2. 中创建的证书,将 5. 中记下的端点添加为源。
  7. 更新 Route 53 配置以添加 A(和 AAAA)别名记录,指向 CloudFront 分配,您可以从自动建议的列表中进行选择。
  8. 等到一切都部署完毕。

尤其是您要按照描述创建的证书,因为这允许它自动更新,您不必担心它。CloudFront 只能自动使用在 US-East-1 区域创建的证书,在其他地方创建您的证书意味着您需要手动下载/上传它们,并且每次它们到期时都这样做。


推荐阅读