You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决AWS CloudFront SSL证书不存在报错?CloudFormation配置IamCertificateId时的问题排查

排查CloudFormation中CloudFront IAM证书错误的关键点

我之前在AWS中国区部署CloudFront时也碰到过类似的证书问题,结合你描述的情况,除了已经排查的点,还有几个容易遗漏的细节可以逐一验证:

  • 检查IAM证书的权限策略
    即使证书存在且ID正确,CloudFront服务可能没有权限访问你的IAM证书。你需要给目标IAM证书附加一个权限策略,允许中国区的CloudFront服务主体读取该证书:

    1. 执行aws iam get-server-certificate --server-certificate-name <你的证书名>获取证书的ARN
    2. 用以下策略更新证书权限(替换占位符):
      {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "Service": "cloudfront.amazonaws.com.cn"
            },
            "Action": "iam:GetServerCertificate",
            "Resource": "<你的证书ARN>"
          }
        ]
      }
      

    执行命令:aws iam update-server-certificate --server-certificate-name <你的证书名> --new-path / --new-server-certificate-policy <上述策略JSON>

  • 验证证书链的完整性
    AWS允许上传缺少中间证书的证书文件,但CloudFront会严格校验证书链的有效性。你可以通过以下步骤验证:

    1. 用aws iam get-server-certificate --server-certificate-name <你的证书名>获取CertificateBody和CertificateChain内容
    2. 将两个内容分别保存为cert.crt和chain.crt
    3. 用OpenSSL命令验证:openssl verify -CAfile chain.crt cert.crt
      如果返回cert.crt: OK则链有效,否则需要补充完整的中间证书后重新上传。
  • 确认证书的状态和有效期
    虽然上传成功,但证书可能已过期或被标记为无效:
    执行aws iam get-server-certificate --server-certificate-name <你的证书名>,检查ServerCertificateMetadata下的:

    • Status是否为Active
    • Expiration日期是否在当前时间之后
  • 考虑中国区服务的同步延迟
    IAM是全局服务,但中国区的CloudFront可能需要5-10分钟来同步新上传或更新的IAM证书信息。如果是刚上传的证书,建议等待一段时间后再重新部署CloudFormation栈。

  • 检查CloudFormation模板的细节
    确认模板中IamCertificateId的取值:

    • 确保没有多余的空格或特殊字符
    • 虽然支持ARN或ID,但如果用ID的话,必须是ASCA开头的完整ID(可以通过aws iam list-server-certificates的ServerCertificateId字段确认)

内容的提问来源于stack exchange,提问作者Yann Stoneman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 16:32:49