【发布时间】:2019-12-23 11:49:07
【问题描述】:
注意:sitenamehere 不是站点名称。因个人原因编辑。
我有一个位于http://www.[sitenamehere].site.s3-website-us-west-1.amazonaws.com/ 的静态网站——它运行良好,可公开访问。
我想通过 sitenamehere.site 和 www.sitenamehere.site 提供它(第一个重定向到第二个)。我的理解是,我需要 3 件事才能让它发挥作用:
- 通过 AWS 证书管理器获得的证书(通过 DNS 记录验证)
- 指向 S3 存储桶的 Cloudfront 分配
- 具有可公开访问的 html 的 S3 存储桶
- 更新了 Namecheap 上的 DNS 记录
在我看来,我拥有全部 3 个。但是当我访问该站点时,我得到了 www.sitenamehere.site’s server IP address could not be found.
在 namecheap 的 DNS 面板中,我有一条 CNAME 记录:
类型:CNAME
主机:_5ee8b630d994d9efexxxxxxxxxxxx - (原值为_5ee8b630d994d9efexxxxxxxxxxxx.sitenamehere.site,但 Namecheap 支持告诉我只使用第一部分)
值:_4998f8b754e7f59ce4d6xxxxxxxxxxxx.mzlfeqexyx.acm-validations.aws.
ACM 表示证书已通过验证(验证状态:成功)
下一个:Cloudfront。我有一个发行版,它的原始域名是www.sitenamehere.site.s3.amazonaws.com。编辑原点(编辑原点屏幕)时,该值在下拉列表中可用。 Origin ID:S3-www.sitenamehere.site Restrict Bucket Access is No。这一切对我来说似乎都是正确的。
接下来:S3。我在这里有几个桶,但我的目标是www.sitenamehere.site。这就是我让 Cloudfront dist 指出的那个。它是完全公开的,并且有
"Principal": "*",
"Action": "s3:GetObject",
在其存储桶策略中。
这一切看起来应该可以正常工作,但事实并非如此。少了什么东西?
【问题讨论】:
-
在您的 namecheap DNS 中,您需要另一个用于 www 的 CNAME 条目。该 www CNAME 应该是您的 CloudFront 分配地址的别名,类似于 abcdefghijkl.cloudfront.net。
标签: amazon-web-services amazon-s3 hosting amazon-cloudfront jamstack