AWS CloudFront SSL插件使用文档
设计
用途
该部署方式可以帮助您在亚马逊云科技中国区域生成、更新和下载SSL证书(DV、OV、EV),并支持与 Amazon CloudFront 的集成及关联 SSL 证书的自动更新。使用该方式部署SSL证书的前置条件为使用Amazon Route 53 解析您的域名。如果你想将域名解析迁移至Amazon Route 53,请参考域名解析迁移教程。
说明
该方案是基于AWS China CloudFront SSL 插件进行定制化开发,方案架构图如下所示:
- Let’s Encrypt 是一家免费、开放、自动化的证书颁发机构 (CA)。CA已更换,可用于签发OV证书。
-
Certbot 是一款免费的开源ACME客户端工具,可自动化的获取、部署和更新 SSL 证书。
-
Amazon Lambda 用于运行 Certbot 证书颁发及更新程序、API 管理界面以及 IAM SSL 证书管理 API。
-
Amazon Route 53 用于域名解析,Certbot 证书颁发程序将根据域名以及托管在 Amazon Route53 中的托管区,自动生成并添加 DNS 验证记录,以满足证书颁发机构对域名控制权的验证。
-
Amazon SNS 用于发送证书颁发状态的邮件通知。
-
Amazon EventBridge 用于进行事件驱动,在方案堆栈部署与更新成功时自动运行 Certbot 证书颁发程序(Lambda),以实现证书的颁发。同时通过定时任务,默认每 80 天定期生成免费的 SSL 证书用于证书的续期。
-
Amazon API Gateway 用于集成管理 SSL 证书的操作,提供调用接口。
-
Amazon S3 存储桶用于存储备份的 SSL 证书,可通过 Amazon S3 控制台将证书下载到本地。
- 几乎免费*:采用无服务器架构及开源工具搭建,根据无服务器服务的调用次数收费,默认每80天才进行一次调用。
- 开箱即用:仅需三分钟即可完成解决方案的部署及证书的颁发,并支持证书下载以及与 Amazon CloudFront 的集成与自动更新。
- 完全开源:此方案中所有的代码均以开源的方式提供,若有不同的需求,您也可以在源代码基础上进行定制化开发。
- 本方案采用无服务器架构,每次证书颁发会产生极少的费用,例如无服务器资源运行费用,少量的 Amazon S3 存储费用和 Amazon CloudWatch 日志存储费用等。但因颁发证书的域名控制权验证需要,使用 Amazon Route 53 托管域名将会收取 3.575 元 / 月的费用。
使用
准备
您需要在CertCloud有一个支持ACME部署的产品的订单或一个部署域名的签发策略。点击订单详情的ACME部署
或签发策略的
申请证书`,如下所示:
选择AWS平台
部署方式,最终跳转到AWS CloudFormation堆栈创建页面,如下图所示:
创建堆栈
Certcloud已为你自动创建了初始化部署相应的模板,只需要点击右下角下一步
,结果如下所示:
- 堆栈名称:为你的堆栈命名,可以是网站名称或项目名称等,模板中其他资源创建时的名称会引用该名称。
- Email: 邮箱,默认值为账户配置的通知邮箱,用于接受SNS服务和CA机构的邮件通知,可修改。
- Domain Name: 域名列表,签发证书的域名,不建议修改
- SSL Renew Interval Days: 证书轮换周期,默认值为80天,可修改。
当完善上述部署参数信息后,继续点击下一步
,您可以自定义配置堆栈的一些选项,也可使用默认的配置;继续点击下一步
进行确认部署信息后,确认完毕后在页面底部勾选最下方蓝色窗口内的“我确认”,并点击右下角提交
按钮。
提交完成后,你可以在CloudFormation-堆栈进行查看,等待5分钟左右创建完成。
等待堆栈部署过程请及时查看您刚刚填写的邮箱,您将收到由如图所示的邮件地址发送的 SNS 邮件提醒订阅的确认请求。请尽快点击订阅确认链接以便及时接收 SNS 消息通知,否则您可能会错过首次证书颁发的信息。
订阅成功后的提示如下所示:
堆栈创建成功后,您可以在堆栈-输出中看到三个快速链接地址,如下所示:
-
CloudfrontConsole:访问 Amazon CloudFront 控制台,快速绑定已经颁发的证书
-
ManagementWebURL:访问 SwaggerUI,查看或删除 IAM 中已有的 SSL 证书
-
S3BucketURL:访问 Amazon S3 控制台,查看或下载颁发的 SSL 证书,桶中的
.tar.gz
即为证书,桶的命名前缀为堆栈的名称,每次签发都会在桶中新增一个证书对象
使用证书
堆栈部署成功后,将自动为您的域名申请 SSL 证书。如果已经及时在邮件中订阅 SNS 主题,您会收到由如图所示的邮件地址发送的邮件提醒,以提示您成功颁发 SSL 证书。证书名称由堆栈名称与 SSL 证书过期时间组成。例如:Certbot-2023-11-14-1540,名称后的数字代表证书过期时间,如图所示为 2023 年 11 月 14 日 15 点 40 分。
接下来就是使用证书,打开 CloudFront 控制台,创建或选择您已有的分配,找到编辑备用域名与 SSL 证书的选项入口。
然后再自定义 SSL 证书的下拉菜单中选择对应的 SSL 证书,证书名称的前缀为堆栈的名称,选择后进行保存。
您仅需要在第一次进行绑定证书,后续CloudFront会自动绑定新生成的证书