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

WebApp部署与ACM证书配置异常求助

CloudFront部署报错:证书不覆盖CNAME的排查与解决

问题背景

使用AWS CDK部署WebApp流水线,已配置AWS凭证,在us-east-1区域的ACM中创建了包含sub.domain.com和*.sub.domain.com的证书并完成CNAME验证。执行部署命令时,CloudFront分发创建失败,报错提示证书不覆盖配置的CNAME。

部署命令:

cdk deploy PipelineMyWebAppStack --profile my-user \
--parameters AdminEmail=example@domain.com \
--parameters Env=Pro \
--parameters SubdomainWithDot=sub. \
--parameters CertificateArn=arn:aws:acm:us-east-1:000000000000:certificate/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--context HostedZoneName=sub.domain.com

错误信息:

6:32:01 AM | CREATE_FAILED | AWS::CloudFront::Distribution  | WebAppDistribution4473AB7E Resource handler returned message: "Invalid request provided: AWS::CloudFront::Distribution: The certificate that is attached to your distribution doesn't cover the alternate domain name (CNAME) that you're trying to add. For more details, see: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-requirements (Service: CloudFront, Status Code: 400, Request ID: 955a9acb-06c2-4803-94f0-dad22f4833fc) (SDK Attempt Count: 1)" (RequestToken: 525ec696-58d9-6116-5419-b24bc4d9824d, HandlerErrorCode: InvalidRequest)

排查与解决步骤

1. 检查CloudFormation模板中的CNAME配置

先导出合成后的CloudFormation模板,查看CloudFront分发实际配置的CNAME:

cdk synth PipelineMyWebAppStack --profile my-user > template.yaml

打开template.yaml,搜索WebAppDistribution对应的Aliases字段,确认具体的域名列表。

2. 验证域名与证书覆盖范围的匹配性

  • 如果Aliases中的域名是admin.sub.sub.domain.com这类格式:
    说明CDK代码的域名构造逻辑存在错误——你设置了HostedZoneName=sub.domain.com(托管区为sub.domain.com),同时传递了SubdomainWithDot=sub.,代码可能错误地将两者拼接,导致生成多一层sub.的域名。而*.sub.domain.com证书仅覆盖xxx.sub.domain.com格式的域名,无法匹配xxx.sub.sub.domain.com。
    解决:调整CDK代码的域名生成逻辑,比如直接用${serviceName}.${HostedZoneName}生成CNAME(如api.sub.domain.com),无需额外添加SubdomainWithDot参数;或者将HostedZoneName改为domain.com,配合SubdomainWithDot=sub.生成正确的子域名。

  • 如果Aliases中的域名是正确的api.sub.domain.com、admin.sub.domain.com格式:
    登录AWS控制台进入ACM,检查证书的域名列表,确认*.sub.domain.com的验证状态为已验证。偶尔会出现CNAME记录配置错误导致验证未通过的情况,需重新确认验证记录的正确性。

3. 确认证书区域与ARN正确性

再次验证两个关键点:

  • 证书确实部署在us-east-1区域(CloudFront要求证书必须在该区域);
  • CloudFormation模板中引用的CertificateArn与ACM中证书的ARN完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 01:35:11