CDK部署停滞于ACM证书:域名服务器不匹配及验证异常
ACM证书验证无限挂起问题
问题现象
使用AWS CDK部署带HTTPS的ApplicationLoadBalancedFargateService时,AWS Certificate Manager(ACM)证书一直处于挂起状态,无法完成域名验证。
部署代码片段
const hostedZone = new route53.HostedZone(this, 'HostedZone', { zoneName: DOMAIN_NAME, }); new ecs_patterns.ApplicationLoadBalancedFargateService(this, idFor('FargateService'), { domainName: DOMAIN_NAME, domainZone: hostedZone, protocol: ApplicationProtocol.HTTPS, publicLoadBalancer: true, redirectHTTP: true, ...other stuff });
排查过程与核心问题
排查发现,Route53中已注册域名的域名服务器(NS记录),和CDK通过route53.HostedZone()创建的新托管区域的域名服务器不一致。这导致ACM生成的验证CNAME记录无法被外部DNS解析,进而证书验证无法完成。
尝试过的解决方法
手动创建了匹配已注册域名当前域名服务器的托管区域,并用route53.HostedZone.fromLookup()替代CDK中创建托管区域的逻辑,但ACM证书仍卡在验证状态。
DNS记录异常情况
- Route53托管区域控制台显示的验证记录:
name: _7ce0bf02cf465edac62f9e7d2fb94b07.<my-domain> value: _fef47ed357d09a27d030ca5cb578a715.vtqfhvjlcp.acm-validations.aws. - ACM控制台显示的待验证记录:
name: _7ce0bf02cf465edac62f9e7d2fb94b07.<my-domain>. value: _fef47ed357d09a27d030ca5cb578a715.vtqfhvjlcp.acm-validations.aws. - 本地执行
dig <my-domain> _7ce0bf02cf465edac62f9e7d2fb94b07.<my-domain> cname查询,返回ANSWER: 0,外部无法解析到该记录;但在Route53内部测试该记录能返回对应值。
求助点
查阅AWS文档、CDK源码及相关资料后,未找到通过CDK获取已注册域名当前域名服务器的方法,不知道如何确保托管区域的域名服务器与已注册域名的NS记录一致,从而让ACM验证正常完成。
内容的提问来源于stack exchange,提问作者patrick
相关产品推荐
相关产品推荐

