使用 AWS S3 和 ACM 在子域上启用 SSL

joh*_*lli 4 ssl amazon-s3 amazon-web-services

我有一个example.com位于 S3 上的站点。我已为该站点成功设置了 HTTP -> HTTPS 转发。

我还有一个子域,blog.example.me它也位于 S3 上,我想用它启用 SSL。目前,它只支持 HTTP。我使用 Route 53 进行路由,使用 Cloudfront 作为 CDN。

我一直在寻找有关此问题的文档,但尚未找到可行的方法。我是否必须创建一个新证书,或者我可以使用相同的证书example.com吗?如果我可以使用相同的证书,我应该从哪个 AWS 开始?

iam*_*ric 8

对于证书,它取决于它是否涵盖通配符证书的整个域示例的通配符证书是*.example.com您可以为您的证书使用相同的证书sub domain(s)

具有 S3 和 Cloudfront 的典型托管安全站点将遵循以下步骤

Create an S3 Bucket

存储桶名称 - 您的域名

选择您的存储桶,转到属性 -> 静态网站托管,然后启用网站托管

授予公共读取访问权限以允许 cloudfront 从您的存储桶中读取。

Get SSL certficate/ Use existing if applies

AWS 提供免费的 SSL 证书,可与支持 SNI 的浏览器配合使用。您可以导入自己的 SSL 证书。

CloudFront configuration

创建一个新的 Web 分发。在源设置下,使用您从 S3 存储桶的静态托管设置复制的终端节点。许多其他指南在没有解释原因的情况下对此进行了说明?这是因为如果您使用 S3 存储桶配置了重定向规则并指定了内部 AWS S3 资源,重定向将不再起作用。因此,您必须指定网站端点域以确保重定向功能正常工作。

在 Default Cache Behavior Settings 下,值得选择 Redirect HTTP to HTTPS 并缩小 Allowed HTTP Methods?-? 对于静态网站,GET 和 HEAD 就可以了。

在 cloudfront 分发设置下配置:

  • 在备用域名下设置您的域名(yourdomain.com,以及可选的 www.yourdomain.com)
  • 通过选择自定义 SSL 证书,然后选择生成或导入到证书管理器的证书来配置 SSL。
  • 最后,指定默认根对象。这应该与您的 S3 存储桶的索引文档相匹配,通常是 index.html。这只是当客户端请求您的网站 URL 时,所有请求都被重定向到没有路径的地方

Route 53 configuration:

  • 前往托管区域

  • 为您要使用的域或子域选择托管区域

  • 为您的站点创建记录:选择别名,在下拉列表中您应该会看到您的 cloudfront 分布,选择它作为您的别名目标并保存它。

有关更多详细信息,请查看:https : //medium.com/@willmorgan/moving-a-static-website-to-aws-s3-cloudfront-with-https-1fdd95563106