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

无需重新创建ACM证书,如何为CloudFront动态增删域名?

控制台层面的解决方案梳理

一、避免重复创建ACM证书的核心方法

  • 用通配符证书搞定:直接在AWS美国东部N.弗吉尼亚区的ACM控制台申请*.your-root-domain.com通配符证书,申请时顺便把根域名your-root-domain.com也加进去。这样后面同根域下新增任何子域名,都不用重新弄证书,直接就能用。要是涉及多个根域名,就把所有需要的根域和对应通配符都加到同一张证书里,别搞太多分散的证书。

二、把域名放行逻辑转移到易管理服务的两种方案

方案1:用Lambda@Edge做域名校验

  1. 在Lambda控制台(得选美国东部N.弗吉尼亚区)创建一个函数,里面写上允许访问的域名列表,逻辑就是:请求的域名在列表里就放行,不在就直接返回自定义错误页(比如403或者你自己做的错误页面)。
  2. 进入CloudFront控制台,找到你的分发,在「行为」选项卡选对应的行为,添加Lambda@Edge关联,触发事件选「查看请求」,绑定刚才创建的Lambda函数版本就行。
  3. 后续要加/删域名,直接更新Lambda函数里的列表再重新部署版本,不用动CloudFront的配置。

方案2:用AWS WAF做域名白名单拦截

  1. 打开WAF控制台,创建一个Web ACL,关联类型选CloudFront。
  2. 加两条规则:第一条选「字符串匹配」,匹配位置设成请求标头的Host,把允许的域名填进去,动作设为「允许」;第二条设为默认规则,动作选「阻止」,还能自定义返回的错误响应内容。
  3. 把这个Web ACL绑定到你的CloudFront分发上。
  4. 以后要更新允许的域名,直接在WAF的规则里改列表就行,全程不用碰CloudFront的分发配置。

三、支持全网域名指向的兼容处理

如果不在乎随便哪个域名都能指向CloudFront,只要保证:

  • 你的ACM证书能覆盖用户可能用来访问的域名(用通配符证书或者包含所有必要域名的证书)。
  • 靠上面的Lambda@Edge或者WAF拦截逻辑,把未批准的域名直接挡回去,返回错误页就行,不用在CloudFront里限制CNAME。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 08:07:12