证书管理与 HTTPS 化 - 使用 AWS Certificate Manager 自动运维 TLS 证书

介绍使用 AWS Certificate Manager(ACM)进行 TLS/SSL 证书的签发、自动续期和部署。包括与 CloudFront、ALB、API Gateway 的集成、DNS 验证以及 Private CA 的应用。

TLS 证书管理的挑战与 ACM 的作用

网站和 API 的 HTTPS 化需要 TLS/SSL 证书,但传统证书管理伴随大量运维负担。向证书颁发机构(CA)申请、域名所有权验证、证书安装,以及最麻烦的到期前续期工作。因证书续期遗忘导致的服务中断是许多企业实际发生的事故。AWS Certificate Manager(ACM)从根本上解决这些问题。免费签发公共 TLS 证书,设置 DNS 验证后续期完全自动化。ACM 签发的证书有效期为 13 个月,到期前 60 天开始尝试自动续期。只要 DNS 验证用的 CNAME 记录正确设置,证书就会持续自动续期无需人工干预。ACM 广泛支持 CloudFront、ALB、NLB、API GatewayApp Runner 等 AWS 主要边缘/负载均衡服务。

证书签发与验证方法

ACM 的证书签发只需指定域名和选择验证方法即可完成。验证方法有 DNS 验证和邮件验证两种,推荐 DNS 验证。DNS 验证通过在 DNS 中添加 ACM 指定的 CNAME 记录来证明域名所有权。使用 Route 53 时,可从管理控制台一键创建 CNAME 记录。 ```yaml # SAM 模板中的 ACM 证书定义 Resources: Certificate: Type: AWS::CertificateManager::Certificate Properties: DomainName: example.com SubjectAlternativeNames: - '*.example.com' ValidationMethod: DNS DomainValidationOptions: - DomainName: example.com HostedZoneId: !Ref HostedZone ``` 签发通配符证书(*.example.com)后,可用一张证书覆盖 api.example.com、www.example.com、app.example.com 等任意子域名。也可通过 Subject Alternative Names(SAN)在一张证书中包含多个域名。注意 CloudFront 使用的证书需在 us-east-1 区域签发。ALB 和 API Gateway 使用的证书在与资源相同的区域签发。

与 AWS 服务的集成

ACM 证书直接关联到 AWS 各服务使用。CloudFront 分配中,为自定义域名的 HTTPS 化指定 ACM 证书。ALB(Application Load Balancer)中,在 HTTPS 监听器设置 ACM 证书,在负载均衡器进行 TLS 终止。通过 SNI(Server Name Indication),一个 ALB 可使用多个域名的证书。API Gateway 的自定义域名也使用 ACM 证书,可用 api.example.com 等自有域名发布 API。App Runner 也支持通过 ACM 证书实现自定义域名的 HTTPS 化。所有服务中,证书私钥不向用户公开,由 AWS 安全管理。证书自动续期时也会自动反映到关联的服务,不会产生停机。 如需系统学习证书管理,可参考相关书籍(Amazon)

Private CA 与高级使用场景

ACM Private CA(Private Certificate Authority)是为组织内部使用签发私有证书的托管 CA 服务。用于内部系统间的 mTLS(双向 TLS)认证、IoT 设备证书管理、VPN 连接认证等。Private CA 月费 400 USD 较高,但与自建 CA 的成本(HSM、运维人员、审计应对)相比是合理的。短期证书模式可签发有效期 7 天以下的证书,无需月费(仅按证书数量计费)。证书透明性(Certificate Transparency)日志注册也可选配置,确保与公共证书同等的可审计性。ACM 也支持导入证书,可将其他 CA(Let's Encrypt、DigiCert 等)签发的证书导入 ACM 在 ALB 或 CloudFront 中使用。但导入证书不在自动续期范围内,因此直接通过 ACM 签发的运维负担更低。

ACM 的费用

ACM 签发的公共证书完全免费,无论签发数量多少。Private CA 月费约 400 美元,签发的私有证书按量计费(前 1,000 张每张约 0.75 美元)。短期证书模式无月费,每张证书约 0.058 美元。对于大多数 Web 应用,使用 ACM 的免费公共证书即可满足 HTTPS 化需求,无需额外成本。

总结

AWS Certificate Manager 通过免费签发和自动续期 TLS 证书,从根本上消除了证书管理的运维负担。DNS 验证设置后证书持续自动续期,与 CloudFront、ALB、API Gateway 的集成实现无缝 HTTPS 化。Private CA 满足组织内部的 mTLS 和 IoT 证书需求。对于所有需要 HTTPS 化的 AWS 工作负载,ACM 是首选方案。