首页 > 解决方案 > 如何使用 S3 和 Namecheap 托管 SSL 静态站点?

问题描述

注意:sitenamehere 不是站点名称。因个人原因编辑。

我有一个位于http://www.[sitenamehere].site.s3-website-us-west-1.amazonaws.com/的静态站点——它运行良好,可公开访问。

我想通过 sitenamehere.site 和 www.sitenamehere.site 提供它(第一个重定向到第二个)。我的理解是,我需要做 3 件事才能让它发挥作用:

  1. 通过 AWS 证书管理器获得的证书(通过 DNS 记录验证)
  2. 指向 S3 存储桶的 Cloudfront 分配
  3. 具有可公开访问的 html 的 S3 存储桶
  4. 更新了 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 表示证书已通过验证(验证状态:成功)

下一个:云端。我有一个发行版,它的原始域名是www.sitenamehere.site.s3.amazonaws.com. 编辑原点(编辑原点屏幕)时,该值在下拉列表中可用。Origin ID: S3-www.sitenamehere.siteRestrict Bucket Access is No. 这对我来说似乎都是正确的。

下一个:S3。我在这里有几个桶,但我的目标是www.sitenamehere.site. 这就是我让 Cloudfront dist 指出的那个。它是完全公开的并且有

 "Principal": "*",
 "Action": "s3:GetObject",

在其存储桶策略中。

这一切看起来应该可以工作,但事实并非如此。少了什么东西?

标签: amazon-web-servicesamazon-s3hostingamazon-cloudfrontjamstack

解决方案


你应该再做两件事。

  • 添加备用域名

    • 转到您的 CloudFront 分配设置,单击“编辑”
    • 在备用域名下,输入您的网站地址www.sitenamehere.site
  • 在您的 namcheap 中,将 cnamewww指向您的云端地址,例如a1cddfe@cloudfront.net


推荐阅读