Route53 的 AWS S3 重定向不适用于 HTTPS
AWS S3 Redirect for Route53 not working for HTTPS
我正在尝试使用 AWS S3 静态网站重定向来允许从 Apex 域 (example.com) 重定向到 www.example.com 域。
我使用了以下指南https://medium.com/faun/redirect-naked-domain-to-www-with-https-on-aws-route-53-e620e4ce989d
在 Route53 中,我为 apex 域创建了一条 A 记录 example.com
example.com A Simple s3-website-eu-west-1.amazonaws.com.
www.example.domain
指向分发我的网站的云端分发。
云端域会将所有 HTTP 流量重定向到 HTTPS
www.example.com A Simple *************.cloudfront.net.
在 S3 中,我为 example.com
创建了一个存储桶并将其设置为重定向所有请求
[
桶是 public 并且是空的
生成的行为适用于 HTTP,但适用于 HTTPS
http://example.com -> https://www.example.com
https://example.com -> ETIMEDOUT
http://www.example.com -> https://www.example.com
https://www.example.com -> https://www.example.com
我该如何修复此设置,以便
https://example.com -> https://www.example.com
问题是 S3 静态网站托管不支持 HTTPS。 [ref]
因此您需要在 example.com
s3 存储桶前面添加一个 CloudFront 并配置指向它的正确 DNS 记录
问题描述
因此,理想情况下,您希望以下所有内容都能正常工作:
1) https://example.com → https://www.example.com (naked to www)
2) http://www.example.com → https://www.example.com (http to https)
3) http://example.com → https://www.example.com (naked http to www https)
4) https://www.example.com → actually show the content as the canonical URL!
请注意,上面的要求 #3 可以分解为 两个步骤,这将是 #1 和 #2 的组合。
3B) http://example.com → http://www.example.com → https://www.example.com
所有这些 →
都是 HTTP 301 永久重定向。
要求
所以,这里需要 3 件:
- A URL 重定向 (
example.com → www.example.com
)
- [HTTPS 支持] 一个 SSL 证书 覆盖裸子域和 www(它可以二合一,免费认证经理)
- [HTTPS 支持] A 协议重定向 (
http:// → https://
)
解决方案
此解决方案需要 AWS 中的许多部分,这些部分应该都是免费的! (或无额外费用)
步骤 1) 在 S3
中创建 URL 重定向
创建 S3 静态托管网站并将其重定向到 www.example.com。
备注:
- 确保它public可以访问。
- 测试 URL 是否有效,登陆它实际上会进行重定向。 (或通过
curl -v
在终端中测试)
- 始终测试 包含区域 的完整 URL(即
.s3-website-us-west-2.amazonaws.com
)
步骤 2) 在证书管理器中为裸域创建 SSL 证书
转到 https://us-west-2.console.aws.amazon.com/acm/home?region=us-west-2#/(将您的区域更改为您喜欢的区域)并申请 public 证书。确保将 example.com
和 www.example.com
都放在那里。在 Route 53 中验证。
步骤 3) 在 CloudFront 中创建协议重定向
转到 CloudFront 并使用“Http => HTTPS 重定向”的查看器协议策略 创建一个分配,并且其来源是 S3 存储桶的完整 URL以上。
备注:
- 不要直接指向 S3。让我们指向 S3 存储桶静态网站的完整 URL。
- 缓存策略可以是无缓存。
- 备用域名应该是您的 example.com 并且应该将第 2 步的 SSL 证书输入其中。
- 在“来源”选项卡中验证您指向的是 S3 完整 URL 路径。
步骤 4) 在 Route53 中有一个 DNS 记录
最后,转到您的 route53 DNS 记录并将裸域作为 A
记录指向第 3 步的 CloudFront 分配,应该类似于 d21k2s1234123.cloudfront.net
!
多田!
我正在尝试使用 AWS S3 静态网站重定向来允许从 Apex 域 (example.com) 重定向到 www.example.com 域。
我使用了以下指南https://medium.com/faun/redirect-naked-domain-to-www-with-https-on-aws-route-53-e620e4ce989d
在 Route53 中,我为 apex 域创建了一条 A 记录 example.com
example.com A Simple s3-website-eu-west-1.amazonaws.com.
www.example.domain
指向分发我的网站的云端分发。
云端域会将所有 HTTP 流量重定向到 HTTPS
www.example.com A Simple *************.cloudfront.net.
在 S3 中,我为 example.com
创建了一个存储桶并将其设置为重定向所有请求
[
生成的行为适用于 HTTP,但适用于 HTTPS
http://example.com -> https://www.example.com
https://example.com -> ETIMEDOUT
http://www.example.com -> https://www.example.com
https://www.example.com -> https://www.example.com
我该如何修复此设置,以便
https://example.com -> https://www.example.com
问题是 S3 静态网站托管不支持 HTTPS。 [ref]
因此您需要在 example.com
s3 存储桶前面添加一个 CloudFront 并配置指向它的正确 DNS 记录
问题描述
因此,理想情况下,您希望以下所有内容都能正常工作:
1) https://example.com → https://www.example.com (naked to www)
2) http://www.example.com → https://www.example.com (http to https)
3) http://example.com → https://www.example.com (naked http to www https)
4) https://www.example.com → actually show the content as the canonical URL!
请注意,上面的要求 #3 可以分解为 两个步骤,这将是 #1 和 #2 的组合。
3B) http://example.com → http://www.example.com → https://www.example.com
所有这些 →
都是 HTTP 301 永久重定向。
要求
所以,这里需要 3 件:
- A URL 重定向 (
example.com → www.example.com
) - [HTTPS 支持] 一个 SSL 证书 覆盖裸子域和 www(它可以二合一,免费认证经理)
- [HTTPS 支持] A 协议重定向 (
http:// → https://
)
解决方案
此解决方案需要 AWS 中的许多部分,这些部分应该都是免费的! (或无额外费用)
步骤 1) 在 S3
中创建 URL 重定向创建 S3 静态托管网站并将其重定向到 www.example.com。
备注:
- 确保它public可以访问。
- 测试 URL 是否有效,登陆它实际上会进行重定向。 (或通过
curl -v
在终端中测试) - 始终测试 包含区域 的完整 URL(即
.s3-website-us-west-2.amazonaws.com
)
步骤 2) 在证书管理器中为裸域创建 SSL 证书
转到 https://us-west-2.console.aws.amazon.com/acm/home?region=us-west-2#/(将您的区域更改为您喜欢的区域)并申请 public 证书。确保将 example.com
和 www.example.com
都放在那里。在 Route 53 中验证。
步骤 3) 在 CloudFront 中创建协议重定向
转到 CloudFront 并使用“Http => HTTPS 重定向”的查看器协议策略 创建一个分配,并且其来源是 S3 存储桶的完整 URL以上。
备注:
- 不要直接指向 S3。让我们指向 S3 存储桶静态网站的完整 URL。
- 缓存策略可以是无缓存。
- 备用域名应该是您的 example.com 并且应该将第 2 步的 SSL 证书输入其中。
- 在“来源”选项卡中验证您指向的是 S3 完整 URL 路径。
步骤 4) 在 Route53 中有一个 DNS 记录
最后,转到您的 route53 DNS 记录并将裸域作为 A
记录指向第 3 步的 CloudFront 分配,应该类似于 d21k2s1234123.cloudfront.net
!
多田!