AWS CloudFront SSL插件使用文档

该部署方式提供在亚马逊云科技中国区域自动生成、更新和下载SSL证书的解决方案,支持与Amazon CloudFront集成和自动更新,要求使用Amazon Route 53解析域名。

设计

用途

​ 该部署方式可以帮助您在亚马逊云科技中国区域生成、更新和下载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部署 或签发策略的申请证书`,如下所示:

图片1 图片2

​ 最终你会得到如下所示页面:

ACME部署

​ 点击AWS部署方式中的链接,跳转到AWS CloudFormation堆栈创建页面,如下图所示:

ACME部署


创建堆栈

​ Certcloud已为你自动创建了初始化部署相应的模板,只需要点击右下角下一步,结果如下所示:

ACME部署

  • 堆栈名称:为你的堆栈命名,可以是网站名称或项目名称等,模板中其他资源创建时的名称会引用该名称。
  • Email: 邮箱,默认值为账户配置的通知邮箱,用于接受SNS服务和CA机构的邮件通知,可修改。
  • Domain Name: 域名列表,签发证书的域名,不建议修改
  • SSL Renew Interval Days: 证书轮换周期,默认值为80天,可修改。

​ 当完善上述部署参数信息后,继续点击下一步,您可以自定义配置堆栈的一些选项,也可使用默认的配置;继续点击下一步进行确认部署信息后,确认完毕后在页面底部勾选最下方蓝色窗口内的“我确认”,并点击右下角提交按钮。

确认部署信息

​ 提交完成后,你可以在CloudFormation-堆栈进行查看,等待5分钟左右创建完成。

​ 等待堆栈部署过程请及时查看您刚刚填写的邮箱,您将收到由如图所示的邮件地址发送的 SNS 邮件提醒订阅的确认请求。请尽快点击订阅确认链接以便及时接收 SNS 消息通知,否则您可能会错过首次证书颁发的信息。

ACME部署

​ 订阅成功后的提示如下所示:

订阅成功

堆栈创建成功后,您可以在堆栈-输出中看到三个快速链接地址,如下所示:

输出

  • 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 证书的选项入口。

CloudFront编辑

然后再自定义 SSL 证书的下拉菜单中选择对应的 SSL 证书,证书名称的前缀为堆栈的名称,选择后进行保存。

选择证书

您仅需要在第一次进行绑定证书,后续CloudFront会自动绑定新生成的证书

December 18, 2023