【问题标题】:How do I host an SSL static site using S3 and Namecheap?如何使用 S3 和 Namecheap 托管 SSL 静态站点?
【发布时间】:2019-12-23 11:49:07
【问题描述】:

注意: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 表示证书已通过验证(验证状态:成功)

下一个: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


【解决方案1】:

你应该再做两件事。

  • 添加备用域名

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

【讨论】:

    猜你喜欢
    • 2019-12-22
    • 2019-09-03
    • 2012-07-27
    • 2015-01-27
    • 1970-01-01
    • 1970-01-01
    • 2014-05-13
    • 1970-01-01
    • 2021-07-16
    相关资源
    最近更新 更多