步骤1:创建用于验证域名的特殊文件,以便在Terraform中使用。
variable "aws_acm_certificate_validation" { type = "map" default = { us-east-1 = "file://path/to/file/in/us-east-1" us-east-2 = "file://path/to/file/in/us-east-2" us-west-1 = "file://path/to/file/in/us-west-1" us-west-2 = "file://path/to/file/in/us-west-2" } }
步骤2:创建基础结构以生成SSL证书并验证域名。
resource "aws_acm_certificate" "example" { domain_name = "example.com" validation_method = "DNS" lifecycle { create_before_destroy = true } }
步骤3:将AWS ACM证书验证记录添加到域名系统中呈现的CloudFormation模板。
data "aws_route53_zone" "selected" { name = "example.com." private_zone = false }
resource "aws_route53_record" "example_validation" { count = length(var.aws_acm_certificate_validation) name = aws_acm_certificate.example.domain_validation_options[count.index].resource_record_name type = aws_acm_certificate.example.domain_validation_options[count.index].resource_record_type zone_id = data.aws_route53_zone.selected.zone_id ttl = 60 records = [aws_acm_certificate.example.domain_validation_options[count.index].resource_record_value] }
步骤4:在安装的基础结构中添加标准SSL证书,以发送信息并解析它。
resource "aws_lb_listener_certificate" "example" { listener_arn = aws_alb_listener.example.arn certificate_arn = aws_acm_certificate.example.arn }
步骤5:使用dnsimple API验证验证数字。
result=$(aws acm describe-certificate --certificate-arn ${ACM_CERTIFICATE_ARN}) validation_domain=$(echo $result | jq --raw-output '.Certificate.DomainValidationOptions[].ResourceRecord.Name' | sed 's