如何在AWS中为自己的S3托管站点添加SSL/TSL证书(https)

概要

利用AWS的S3服务托管静态网站后,如何将自己的域名与该站点绑定,并为此域名提供SSL/TSL证书(https)。

面向人群

  • 已经掌握如何利用S3服务托管静态网站。
  • 已经拥有自己的域名。
  • 希望为自己的域名添加安全证书,可以通过https访问自己的静态网站。

实施步骤

  1. 在AWS Certificate Manager(ACM)申请证书。
    为自己的域名申请证书。比如www.example.com。
    注意,必须在“美国东部(弗吉尼亚北部)”区域申请。否则在CloudFront中无法使用。
  2. 在AWS CloudFront Manager(CF)建立分发(Distributions)。
    delivery method选择Web。
    Origin Domain 选择托管成静态网站的S3存储桶。

    然后选择使用网站端点
    在名称,输入此源的名称节中做以下设定:
    * Alternate Domain Names(CNAMEs)里面填写要进行关联的域名,比如www.example.com。
    * SSL Certificate选择Custom SSL Certificate,然后在下拉框中选择之前在ACM申请的证书。
    在默认根对像处,输入静态网站默认首页如:index.html

    其他设置项默认即可。
    点击Create Distribution。需要一段时间才能完成配置,等待Status变成Deployed。
    这时可以看到Domain Name列下面有一个xxxxx.cloudfront.net,这个地址下一步会用到。
  3. 去自己的域名托管商的管理页面,进行DNS设定。
    添加一个CNAME,将自己的域名比如www.example.com的目标设置成第3步记下来的xxxxx.cloudfront.net。
    需要一点时间让所有设置生效。
  4. 之后,可以通过http://www.example.com 访问网站。
    如果使用https://www.example.com 则会看到浏览器的地址栏前面出现了一个小锁头啦。