前言
AWS提供了有一定免费额度的CDN网络(名字为CloudFront,且速度还可以),所以我便在这里写一篇文章,简单记录下给网站配置使用CloudFront的整个流程,本文以uptimemonitor.top这个域名作为例子。
申请证书
要使用CDN,肯定要先去弄ssl证书。CloudFrontCDN使用的是AWS Certification Manager的证书。首先将账号切换到美国 弗吉尼亚北部(证书必一定要是在这里us-east-1),也可以直接点这个链接https://us-east-1.console.aws.amazon.com/acm/home?region=us-east-1#/welcome 如下图,点击请求证书按钮

然后一路下一步,直到下图中的界面,如果不想被收费的话,一定要选择禁用导出!(关于这个的价格,可以查看https://aws.amazon.com/cn/certificate-manager/

然后点击请求 ,在新的页面下按照要求修改自己域名的解析记录。修改完后,等待一小段时间,刷新页面,就可以看到证书已经颁发了。
添加一个解析记录指向源站
说下为什么这么做,因为CloudFront强制要求源站的地址必须是可解析的域名(详见https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DownloadDistValuesOrigin.html),而不能直接填写一个单纯的IP地址,所以我们需要额外解析域名到源站上面(如果源站已经有其他解析记录,可以忽略本步骤)。(我这里以uptime.example.com举例子)。(这里还要提到一点,虽然在源站地址填写的是uptime.example.com,但是cloudFront默认情况(没有手动配置转发策略的情况下)下发送的回源HOST头不是uptime.example.com,而是我们自定的cname地址,本文中是uptimemonitor.top)

新建一个CDN
https://us-east-1.console.aws.amazon.com/cloudfront/v4/home?region=ap-northeast-1#/distributions
前往这个链接 点击创建分配,到下图。选中free计划

一路next 然后直到第三步“Specify Origin”这一步,源站选择Other,Origin输入我们刚刚新建的解析记录(不能是IP地址)。如下图的界面。

绑定域名
创建好后的主界面如下,在主界面点击编辑按钮

在下图中的红色框框圈出的地方输入 对外要绑定的域名,然后保存。

将刚刚输入的域名CNAME解析到CLOUDFRONT提供的地址上面(一定要先配置好再CNAME解析,否则访问会报错SSL_ERROR_NO_CYPHER_OVERLAP)
一些其他问题
有些域名解析商是不允许在根域名上使用Cname进行解析的。如果你需要将根域名套CloudFront,请检查你的域名解析商是否支持Cname拉平技术(此技术让给根域名进行cname成为可行)