S3存储桶的HTTPS重定向

19

我的网站是在example.com上。我已经创建了一个S3存储桶,并设置了重定向所有请求到example.com,并创建了一个DNS条目将www.example.com指向该S3存储桶。到目前为止,从http://www.example.com重定向到http://example.com正常工作。

我无法将https流量从https://www.example.com重定向到https://example.com

我创建了一个Cloudfront分配并为其添加了SSL,并将其指向上述S3存储桶。当我尝试访问给定域名的分配时,浏览器中没有被重定向,而是显示以下内容:

<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Name>www.example.com</Name>
  <Prefix/>
  <Marker/>
  <MaxKeys>1000</MaxKeys>
  <IsTruncated>false</IsTruncated>
</ListBucketResult>

我的分发一般设置为:

Distribution ID XXXXXXXXXXXX
Log Prefix  -
Delivery Method Web
Cookie Logging  Off
Distribution Status Deployed
Comment -
Price Class Use All Edge Locations (Best Performance)
AWS WAF Web ACL -
State   Enabled
Alternate Domain Names (CNAMEs) -
SSL Certificate mycert
Domain Name xxxxxxxxxxx.cloudfront.net
Custom SSL Client Support   Only Clients that Support Server Name Indication (SNI)
Default Root Object -
Last Modified   2016-01-18 16:12 UTC+2
Log Bucket

有什么办法让它工作吗?

1个回答

25

您离成功只差一步了,CloudFront是正确的解决方案。

与从下拉菜单中选择存储桶不同,您需要采用稍微不同的方法。

在重定向存储桶的静态网站托管配置中,找到端点。这将类似于bucket-name.s3-website.${aws_region}.amazonaws.com的形式呈现。

使用此主机名,而不是从下拉列表中选择存储桶。

当您以这种格式指定存储桶名称时,可以使用Amazon S3重定向和Amazon S3自定义错误文档。

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DownloadDistS3AndCustomOrigins.html

请注意,您的起源协议策略,即指定CloudFront与S3之间使用的协议,必须设置为仅HTTP。(此设置仅针对后端,前端仍可使用https)。


1
你真是救星!从下拉列表中选择存储桶无法重定向。你必须将其设置为S3网站URL。 - Tomas Lukac
还要别忘了使您的CloudFront失效以查看效果。 - Mithun Biswas
AWS 没有在他们的文档中包含这个,真是遗憾。到了 2022 年还是令人困惑。 - Terry Windwalker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接