css - 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 的方法——但它似乎要复杂得多(与亚马逊免费提供的相比)。
解决方案
可能您的 CloudFront 源指向错误的端点。不要从源列表中选择自动建议的存储桶,而是显式复制 S3 存储桶中“静态网站托管”下显示的端点,该端点应类似于example.com.s3-website-us-east-1.amazonaws.com
. 否则,您将指向 S3 存储桶 HTTP 接口,而不是网站主机。
只是为了确保,整个过程基本上是:
- 首先在 Route 53 中设置域区域,以便下一步存在。
- 在区域 US-East-1(弗吉尼亚北部,重要!)中,在证书管理器中为域创建证书请求。使用 DNS 验证,并让 AWS 将所需的记录自动插入到您在 1 中创建的 Route 53 配置中。
- 创建 S3 存储桶。
- 明确设置自定义存储桶策略以允许匿名访问。
- 为存储桶启用“静态网站托管”。注意显示的端点。
- 创建 CloudFront 分配,将您的域名添加为备用域名,从列表中选择 2. 中创建的证书,将 5. 中记下的端点添加为源。
- 更新 Route 53 配置以添加 A(和 AAAA)别名记录,指向 CloudFront 分配,您可以从自动建议的列表中进行选择。
- 等到一切都部署完毕。
尤其是您要按照描述创建的证书,因为这允许它自动更新,您不必担心它。CloudFront 只能自动使用在 US-East-1 区域创建的证书,在其他地方创建您的证书意味着您需要手动下载/上传它们,并且每次它们到期时都这样做。
推荐阅读
- arm - 如何通过STM32f4中的ADC读取电位器的值?
- python - 为时间算法覆盖每次打印的打印行
- html - 无法在 Angular Material 表上设置高度.. 高度溢出容器
- mysql - SQL SYNTAX(红色节点)
- php - 将变量传递给包含中的另一个变量可能吗?
- javascript - 如何修复'无法设置未定义的属性'ref''?
- c - C:在宏中隐藏 if 语句的最佳方法
- reactjs - 在 react-boilerplate 中配置 antd 主题
- php - 我的查询是否锁定该行以供下次使用
- javascript - 是否有相关功能可以在 NetSuite 中创建的 PDF 文件中显示多页