最近对CloudFront的兴趣很浓,不仅仅是和Lightsail的免费额度有关,还有就是通过它的香港IPv6节点中转是CERNET走HKIX出网最低价的选择了。
如果光说中转那个用途,也用不上绑定自定义的域名,给你分配的那个默认域名就足够了。但是你要绑定自定义的域名的话,就需要用到ACM(AWS证书管理器),而恰好Starter在控制台没有这个权限,所以包括博主在内很多人都以为残废的Starter根本没法绑定域名。
直到昨天在loc有人提到可以使用CLI上传证书文件,今天早上查阅了一下AWS的文档,很快就找到了相关的内容:
一、安装AWS-CLI
博主是选择Windows上手,就不提Linux下的操作了,除了安装之外大同小异,你可以跟着官方文档去做。
下载地址:https://awscli.amazonaws.com/AWSCLIV2.msi
正确安装好之后打开cmd
输入aws --version
即可看到CLI返回的版本信息。
二、设置账户信息
Starter的账户CLI登录信息在Vocareum的控制台上,点击Account Details即可看到;注意这个登录信息是一次性的,一段时间后就会失效,如果再次需要使用请重新填写相关的信息。
他上面的指示让你复制到对应的目录,实际上用不着,直接执行aws configure
然后输入对应的信息即可,注意Starter的ACM地区对应是弗吉尼亚北部us-east-1
,返回信息填写json
即可
因为Vocareum设置了Token,所以我们还要执行一句命令将Token写进CLI
1 |
aws configure set aws_session_token "YourTokenInsertHere" |
三、上传证书
首先要将签发好的证书拆成证书、密钥、证书链三段的格式,如果你签发的证书有Apache使用的格式直接拿来用就可以了;如果是Nginx的格式的话,证书需要自己拆分成证书和证书链。
用文本编辑器如npp等打开证书文件,你可以看到以BEGIN CERTIFICATE
为首END CERTIFICATE
为尾的两段或几段证书(取决于你证书链的长度),一般情况下其中的第一段就是证书,后面的一段或几段就是证书链,复制下来放入新的文件即可。然后执行上传的指令即可,修改命令中证书的路径以及你要设置的证书名称CertificateName
和CDN项目名称YourDistributionName
(当然这个名称无所谓)
1 |
aws iam upload-server-certificate --server-certificate-name CertificateName --certificate-body file://F:\Cert\cert.pem --private-key file://F:\Cert\key.pem --certificate-chain file://F:\Cert\chain.pem --path /cloudfront/YourDistributionName/ |
上面红框忘了框选CertificateName
,注意这个值每个证书必须是唯一的,上传多个证书的话一定要修改这个参数;再就是评论有提到删除证书,我尝试了一下Starter账户甚至没有delete-certificate
这个权限,传上去就留在上面吧。
四、设置CDN
剩下域名的设置就简单了,在备用域名里面填上你自己的域名,然后选择刚才上传的证书,最后把自己的域名CNAME到AWS给你那个默认域名就完事了。
当然我知道某些人想干啥,如果要干那啥需要设置一下源请求策略,如图添加一条新的。因为默认AWS不会完全继承源站请求头,导致upgrade
请求头未能传递而无法建立连接。
部属完成后访问自定义的域名便已经正常了
AWS的Starter申请门槛很低,在校的朋友们都可以尝试使用自己的邮箱去申请,即使被拒了也可以通过给AWS客服发送学生证通过验证。CLI如果要登入其他的账户直接从头开始即可覆盖之前的信息,其他关于AWS的CDN之前那一篇对网络选择已经做了一个简单的解释,这里就不再提了:
【CDN】AWS Lightsail CDN测试(免费一年)
*原创文章,转载请注明出处
请问Starter账号不能用Lightsail,可不可以用CLI来创建Lightsail?
文章说的很好,学习了
写的不错哦,加油
An error occurred (InvalidClientTokenId) when calling the UploadServerCertificate operation: The security token included in the request is invalid
这是什么情况?
好文章,再请研究一下。一、如何 删除已经上传的证书。二、证书到期后如何更新
delete-certificate
指令配合并附上ARN参数即可删除;至于更新,直接上传新证书重新部署到CDN即可。Starter寿命不长,证书删不删都一样,传上去能用就行了,普通账号进入ACM控制台这些操作都是非常简单的。--path /cloudfront/YourDistributionName/
参数,其中YourDistributionName
是需要你自己设置并且不能重复的,你是没修改这个参数直接复制的别人的吧list-certificates
获取证书arn,也不能像s3一样使用通配符进行操作delete-certificate
子账户也没有这个权限