无停机替换ACM导入通配符证书为AWS颁发证书
零停机替换自导入通配符证书为ACM签发证书的实操方案
你担心的CNAME验证记录和现有通配符A记录冲突的问题本质是对ACM DNS验证规则的误解,全程不需要删除现有A记录,完全可以做到无离线平滑替换,操作步骤如下:
- 首先提交ACM证书申请:在ACM控制台选择申请公有证书,填入域名
*.example.com,验证方式选DNS验证。提交后你会看到ACM生成的专属验证记录,这条记录的主机名根本不是*.example.com:它的格式是_[随机校验串].example.com,是以下划线开头的特殊子域名,记录类型为CNAME,记录值是ACM提供的专属验证域名。
DNS协议中“同主机名不能同时存在CNAME和其他类型记录”的规则,仅对完全一致的主机名生效。你现有的通配符A记录主机名是
*.example.com,和ACM验证用的下划线开头专属子域名完全不重合,二者没有任何冲突,直接创建验证记录即可,不会对现有解析造成任何影响。
- 等待证书签发:如果你的DNS托管在Route53,直接在ACM证书详情页点「在Route 53中创建记录」,系统会自动把验证记录填到正确的位置,全程不会触碰你现有的通配符A记录,也不会触发冲突报错。如果用第三方DNS服务商,手动复制ACM给出的主机记录、记录值添加即可,不要手滑把主机记录填成
*.example.com就不会出问题。一般DNS记录生效后几分钟内ACM就会完成验证,证书状态变为已签发。 - 热切换证书不中断服务:新证书签发后,先不要删除旧的自导入证书,直接去你绑定证书的AWS资源(ALB、CloudFront、API Gateway等)的对应监听器/域名配置里,把关联的旧证书替换成新的ACM签发证书。这个操作是控制面热更新,不会重启服务节点:新发起的HTTPS连接会自动用新证书完成握手,已经建立的长连接完全不受影响,不会出现访问中断。
- 收尾验证:证书切换完成后,用浏览器、openssl等工具抽查不同子域名的证书返回情况,观察24-48小时确认所有访问正常、没有证书报错后,再删除ACM里之前上传的旧自导入证书即可。
常见踩坑提醒
不要为了规避莫须有的解析冲突选择邮件验证方式:DNS验证的ACM证书支持到期自动续期,后续完全不需要人工干预;邮件验证的证书每次续期都需要手动操作域名邮箱确认,维护成本高很多。
内容的提问来源于stack exchange,提问作者tom_h
相关产品推荐
相关产品推荐

