使用 AWS Certificate Manager 自动化 SSL/TLS 证书管理 - 从签发到轮换
讲解使用 ACM 免费签发公有证书、DNS 验证、自动续订以及部署到 ALB / CloudFront 的方法。
ACM 概述
ACM 是一项自动完成 SSL/TLS 证书签发、管理和部署的服务。公有证书可以免费签发,并可用于 ALB、NLB、CloudFront、API Gateway 和 Elastic Beanstalk。由 ACM 签发的证书由 ACM 管理续订,因此无需使用 cron 作业或 certbot 来管理续订。将证书直接放在 EC2 实例上的方式与将证书分配给集成服务的方式属于不同的处理,因此在 EC2 上终止 HTTPS 时,应考虑在前端放置 ALB 的架构或使用 Let's Encrypt。
DNS 验证与自动续订
证书的验证方式为 DNS 验证和电子邮件验证,对于面向 CloudFront 的证书,仅限 CloudFront 的部分功能可以使用 HTTP 验证。在 DNS 验证中,需要将 ACM 指定的 CNAME 记录添加到 Route 53(或外部 DNS)。如果使用 Route 53,可以从控制台添加记录。电子邮件验证是向域名管理员的电子邮件地址发送确认邮件的方式,每次续订都需要手动批准,因此 AWS 推荐支持自动续订的 DNS 验证。DNS 验证记录只要添加一次,在删除之前一直有效,并会持续用于证书的自动续订。ACM 的自动续订会在证书到期之前开始,只要 DNS 验证记录存在且证书已关联到 AWS 资源,证书就会自动续订。ACM 证书的有效期为 198 天,续订后的证书会自动反映到 ALB 和 CloudFront。
私有证书与证书透明度
与 ACM Private CA 集成后,可以为组织内部服务之间的通信签发私有证书。由于公有证书会被记录到 Certificate Transparency(CT)日志中,因此不希望公开内部服务的主机名时应使用私有证书。也可以通过 ACM 的导入功能管理由外部 CA 签发的证书,但自动续订仅支持由 ACM 签发的证书。证书的有效期临近时,会通过 CloudWatch 指标和 EventBridge 事件发出通知,因此可以察觉遗漏的续订。由于需要按区域签发证书,在多区域架构中需要在各个区域分别管理证书。
ACM 的费用
ACM 的公有证书可以免费签发 / 续订。部署到 ALB、CloudFront 和 API Gateway 也不会产生额外费用。ACM Private CA 每月约 400 美元/CA,并会根据签发的证书数量产生额外费用(前 1,000 张每张 0.75 美元)(截至 2026 年 8 月)。在短期证书模式(有效期 7 天以下)下,CA 的月费会优惠至约 50 美元。对于公有证书能够满足的用例,应利用 ACM 的免费证书,并将 Private CA 限定于 mTLS 或内部服务认证等确有需要的场景,以此管理成本。
按部署目标划分的架构模式
需要注意,ACM 证书所在的区域会因使用它的 AWS 资源而不同。应用于 CloudFront 的证书,由于全球分发的机制,必须在弗吉尼亚北部区域签发。另一方面,对于 ALB 和 API Gateway 等区域性资源,应使用与该资源相同区域的证书。如果在不了解这一差异的情况下签发,证书可能不会出现在部署目标的选项中。在绘制架构图的阶段,就要整理好为哪个资源分配哪个区域的证书。
防止续订失败的运维
ACM 的自动续订很方便,但如果某些条件被破坏,续订就会失败。如果删除了用于 DNS 验证的 CNAME 记录,就无法完成续订的验证,因此应保留这条记录而不要删除。此外,证书已关联到 AWS 资源并处于实际使用状态,也是自动续订的前提。未被使用的证书有时会被排除在自动续订的对象之外。有效期临近时会通过事件发出通知,因此应对其进行监控,尽早察觉遗漏的续订。通过保持这些条件的运维,更容易防止因证书过期而导致的故障。
通配符证书与多域名证书
在 ACM 中,可以用一张证书保护多个主机名。通配符证书会统一保护同一域名下一个层级的子域名,因此在该层级添加子域名时无需重新签发证书。可以签发将不同域名包含在 1 张证书中的多域名(SAN)证书,用 1 张证书管理多个相关站点。一张证书可包含的域名数量有上限,因此在架构规模变大时,需要设计如何组合使用通配符和单独指定。减少证书的张数,可以减少需要管理续订的对象。
私有 CA 与双向 TLS
对于不对外公开的内部服务之间的通信,适合使用由私有 CA 签发的证书。公有证书会被记录到透明度日志中,主机名会被公开,因此希望隐藏内部名称时应选择私有证书。此外,如果配置客户端和服务器相互出示证书进行认证的双向 TLS(mTLS),就可以做到只与获得许可的对象通信。私有 CA 的维护需要费用,因此应区分公有证书即可满足的用途和需要内部认证或 mTLS 的用途,在必要的范围内引入。
总结
ACM 是一项管理公有 SSL/TLS 证书签发和续订的服务。设置 DNS 验证后,证书无需手动操作即可续订,并且可以将证书分配给 ALB 和 CloudFront。与 Private CA 结合使用,可以签发用于内部服务 mTLS 认证的证书。
参考资料(AWS 官方)
本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。
如本页内容与官方文档不一致,请以官方文档为准。