使用 AWS Private CA 构建私有 PKI - 证书自动签发与轮换
构建私有证书颁发机构,为内部服务间的 mTLS 自动签发证书。介绍证书生命周期管理与 CRL 设计。
Private CA 概述
Private CA 是一项托管证书颁发机构服务,可自动化私有证书的签发与管理。与 ACM (AWS Certificate Manager) 免费签发公共证书不同,Private CA 签发的是组织内部使用的私有证书。适用于微服务间 mTLS、VPN 客户端认证、IoT 设备认证等公共证书无法覆盖的场景。Private CA 支持 RSA 2048/4096 和 ECDSA P256/P384 密钥算法,签发包含 X.509 v3 扩展的证书。从 CA 创建到证书签发的所有操作均可通过 API 执行,消除了手动操作失误,并在 CloudTrail 中自动记录审计轨迹。
证书签发与 mTLS
使用 Private CA 签发的证书进行服务间 mTLS 通信,不仅能加密通信,还能实现客户端身份认证。使用短期证书(有效期数小时至数天)可免去证书吊销列表 (CRL) 的管理负担。由于证书有效期极短,即使证书泄露,被滥用的时间窗口也极为有限。通过与 ACM 集成,可将私有证书自动部署到 ALB,实现内部 ALB 的 HTTPS 化。在 EKS 环境中,通常结合 cert-manager 和 Private CA Issuer 插件,按 Pod 粒度自动签发和轮换证书。在 App Mesh 或 Service Connect 中自动向 Sidecar 代理分发 mTLS 证书的设计中,建议将证书有效期设为 24 小时以下,从而完全无需 CRL 管理。
证书模板与自动化
Private CA 通过证书模板签发服务器证书、客户端证书、代码签名证书等不同用途的证书。通过与 ACM 集成,Private CA 签发的证书可自动部署到 ALB 和 API Gateway,并自动完成续期。短期证书(有效期 7 天以下)简化了 CRL(证书吊销列表)管理,无需进行证书吊销处理。还可配置 OCSP(在线证书状态协议)响应器,实时验证证书有效性。使用 CloudFormation 或 Terraform 自动化 CA 创建和证书签发,通过 IaC 管理 PKI 基础设施。 关于证书管理的基础到进阶知识,可参考相关书籍 (Amazon)进行系统学习。
按用例的设计模式
在微服务间 mTLS 场景中,为每个服务签发短期证书,将服务名写入证书的 SAN (Subject Alternative Name) 以与服务发现集成。在 IoT 设备认证场景中,在设备制造阶段从 Private CA 预先签发证书,并与 AWS IoT Core 的即时注册 (JITR) 联动,在设备首次连接时自动配置。在 VPN 客户端认证场景中,使用 Private CA 同时签发 AWS Client VPN 的服务器证书和客户端证书以配置双向认证。在代码签名场景中,将 Private CA 证书集成到 CI/CD 流水线中,对构建产物 (如 Lambda 函数部署包) 进行签名以检测篡改。
设计最佳实践与常见陷阱
CA 层级结构采用 2 层(根 CA + 中间 CA)或 3 层(根 CA + 策略 CA + 签发 CA)构建,根 CA 有效期设为 10 年以上。根 CA 在签发证书后立即禁用 (disable),仅运行中间 CA,以降低根密钥被滥用的风险。CRL 分发通常配置为自动发布到 S3 存储桶,但存储桶访问策略配置错误会导致整个服务的证书验证失败,需谨慎管理 S3 存储桶策略。启用 OCSP 响应器可免去 CRL 下载,提高验证速度,但 OCSP 端点的可用性会影响整个服务,需要高可用性设计。常见故障模式是 CA 到期而未被察觉导致服务中断。应设计 CloudWatch 告警监控 CA 剩余有效期,在到期前 6 个月触发告警。
Private CA 定价
Private CA 每个 CA 月费约 400 美元,另按签发证书数量收取附加费用。前 1,000 张每张 0.75 美元,10,000 张以内每张 0.35 美元。短期证书模式下 CA 月费降至约 50 美元,在大量签发短期证书的微服务环境中可显著提升成本效率。CA 层级结构(根 CA → 中间 CA)中,将根 CA 离线、仅运行中间 CA 是安全最佳实践。
总结
Private CA 是以托管方式签发和管理组织内部私有证书的服务。通过短期证书(7 天以下)简化 CRL 管理,借助 ACM 集成实现证书部署与续期自动化。利用 mTLS 实现服务间双向认证,通过 CA 层级结构(根 CA + 中间 CA)构建符合安全最佳实践的 PKI。