【发布时间】:2021-10-26 15:20:06
【问题描述】:
我正在尝试按照 Terraform 文档中的示例使用 Terraform 创建和验证 AWS 证书:https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/acm_certificate_validation#dns-validation-with-route-53
我的 Terraform 文件如下所示:
resource "aws_acm_certificate" "vpn_server" {
domain_name = "stuff.mine.com"
validation_method = "DNS"
tags = {
Name = "certificate"
Scope = "vpn_server"
Environment = "vpn"
}
}
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 = "2m"
}
}
resource "aws_route53_zone" "my_dns" {
name = "stuff.mine.com"
tags = {
name = "dns_zone"
}
}
resource "aws_route53_record" "my_dns_record_vpn_server" {
for_each = {
for dvo in aws_acm_certificate.vpn_server.domain_validation_options : dvo.domain_name => {
name = dvo.resource_record_name
record = dvo.resource_record_value
type = dvo.resource_record_type
}
}
allow_overwrite = true
name = each.value.name
records = [each.value.record]
ttl = 60
type = each.value.type
zone_id = resource.aws_route53_zone.my_dns.zone_id
}
问题是,当运行terraform apply 时,验证总是会超时并失败并显示错误消息:
aws_acm_certificate.vpn_server: Creating...
aws_acm_certificate.vpn_server: Creation complete after 8s [id=arn:aws:acm:eu-west-2:320289993971:certificate/7e859491-141f-49d5-b50e-c44cf4e1db4e]
aws_route53_zone.my_dns: Creating...
aws_route53_zone.my_dns: Still creating... [10s elapsed]
aws_route53_zone.my_dns: Creation complete after 52s [id=Z09112516IIP4OEAIIQ7]
aws_route53_record.my_dns_record_vpn_server["stuff.mine.com"]: Creating...
aws_route53_record.my_dns_record_vpn_server["stuff.mine.com"]: Still creating... [10s elapsed]
aws_route53_record.my_dns_record_vpn_server["stuff.mine.com"]: Still creating... [20s elapsed]
aws_route53_record.my_dns_record_vpn_server["stuff.mine.com"]: Still creating... [30s elapsed]
aws_route53_record.my_dns_record_vpn_server["stuff.mine.com"]: Still creating... [40s elapsed]
aws_route53_record.my_dns_record_vpn_server["stuff.mine.com"]: Still creating... [50s elapsed]
aws_route53_record.my_dns_record_vpn_server["stuff.mine.com"]: Creation complete after 58s [id=Z09112516IIP4OEAIIQ7__ebd2853fcbfc7cc8bd6582e65d940d54.stuff.mine.com._CNAME]
aws_acm_certificate_validation.vpn_server: Creating...
aws_acm_certificate_validation.vpn_server: Still creating... [10s elapsed]
aws_acm_certificate_validation.vpn_server: Still creating... [20s elapsed]
aws_acm_certificate_validation.vpn_server: Still creating... [30s elapsed]
aws_acm_certificate_validation.vpn_server: Still creating... [40s elapsed]
aws_acm_certificate_validation.vpn_server: Still creating... [50s elapsed]
aws_acm_certificate_validation.vpn_server: Still creating... [1m0s elapsed]
aws_acm_certificate_validation.vpn_server: Still creating... [1m10s elapsed]
aws_acm_certificate_validation.vpn_server: Still creating... [1m20s elapsed]
aws_acm_certificate_validation.vpn_server: Still creating... [1m30s elapsed]
aws_acm_certificate_validation.vpn_server: Still creating... [1m40s elapsed]
aws_acm_certificate_validation.vpn_server: Still creating... [1m50s elapsed]
aws_acm_certificate_validation.vpn_server: Still creating... [2m0s elapsed]
╷
│ Error: Error describing created certificate: Expected certificate to be issued but was in state PENDING_VALIDATION
│
│ with aws_acm_certificate_validation.vpn_server,
│ on main.tf line 61, in resource "aws_acm_certificate_validation" "vpn_server":
│ 61: resource "aws_acm_certificate_validation" "vpn_server" {
│
╵
谁能告诉我完成证书验证需要什么?
【问题讨论】:
-
正如下面的答案中提到的,您不能在没有在某处购买域名并已委托给 Route53 的情况下创建一个 Route53 区域。您正在一个实际上尚未“连接到 Internet”的 DNS 区域中创建记录,因此验证永远不会起作用。此外,根据我的经验,即使您设置正确,验证也可能需要 30 分钟,因此设置 2 分钟的超时限制几乎肯定会失败。
标签: amazon-web-services terraform terraform-provider-aws