使用Terraform创建验证AWS ACM证书超时失败如何解决
修复方案
- 延长证书验证超时时间
当前aws_acm_certificate_validation资源的创建超时仅设置为2分钟,ACM DNS验证依赖全球DNS记录传播,通常需要3-10分钟才能完成校验,建议将超时时间调整到至少10分钟,修改配置如下:
resource "aws_acm_certificate_validation" "vpn_server" { certificate_arn = aws_acm_certificate.vpn_server.arn validation_record_fqdns = [for record in aws_route53_record.my_dns_record_vpn_server : record.fqdn] timeouts { create = "10m" # 原配置为2m,调整为10m } }
- 正确配置子域名的NS记录
你新建的Route53托管域是stuff.mine.com,必须在上级域名mine.com的DNS服务中添加4条NS记录,值为你创建的Route53 zone的nameservers,否则ACM无法全局查询到你添加的DNS验证记录,导致始终卡在PENDING_VALIDATION状态。
你可以先添加输出项获取当前zone的NS地址:
output "route53_zone_ns" { value = aws_route53_zone.my_dns.name_servers }
拿到输出的4个NS地址后,如果mine.com在第三方域名服务商注册,就到对应服务商的DNS管理后台添加stuff.mine.com的NS记录;如果mine.com也由AWS Route53托管,直接在上级zone的资源配置中添加对应NS记录即可。
- 显式配置依赖关系(可选但推荐)
虽然当前配置的引用关系已经可以保证资源创建顺序,你可以显式添加depends_on避免极端情况下的依赖错乱:
resource "aws_acm_certificate_validation" "vpn_server" { certificate_arn = aws_acm_certificate.vpn_server.arn validation_record_fqdns = [for record in aws_route53_record.my_dns_record_vpn_server : record.fqdn] depends_on = [aws_route53_record.my_dns_record_vpn_server] timeouts { create = "10m" } }
内容的提问来源于stack exchange,提问作者adamretter
相关产品推荐
相关产品推荐

