0

使用 Terraform 创建 SSL 证书时,它会自动假定它应该发送到的电子邮件是 postmaster@[subdomain].[domain].com 而不是 postmaster@[domain].com。在 AWS 证书管理器中,如果我重新请求电子邮件验证,它会修复它,但我需要能够通过 Terraform 严格执行此操作。

我在 Terraform 上的任何 github 问题中都找不到任何看起来可以解决此问题的内容。

resource "aws_acm_certificate" "aws_cert" {
  domain_name       = "${var.domain_name}"
  validation_method = "${var.validation_method}"

  subject_alternative_names = ["${var.subject_alternative_names}"]

  tags = {
    Name        = "${var.environment}-${var.app_name}-aws-certificate"
    ManagedBy   = "My Terraform"
    Environment = "${var.environment}"
    Team        = "vin-${var.team_name}"
  }

  lifecycle {
    create_before_destroy = true
  }
}
4

1 回答 1

0

这是目前 Terraform 的一个限制。这是一个修复该问题但尚未获得批准的拉取请求: https ://github.com/terraform-providers/terraform-provider-aws/pull/3853

一种解决方法是在运行 Terraform 以从输出变量中获取证书 arn 后进行检查,使用 AWS CLI 运行 Powershell 命令以查看证书是否已颁发以及是否尚未颁发通过 AWS CLI 重新发送

// Get AWS Cert Status Here
$awsCertStatus = (aws acm describe-certificate --certificate-arn arn:aws:acm:us-east-1:881385135648:certificate/52e2b724-0400-4b3f-9032-0d80f9c3e9ea | ConvertFrom-Json).Certificate.Status

// Check if Cert Status is of Issued
if($awsCertStatus -ne "ISSUED"){
    // It hasn't been issued, resend the validation email
    aws acm resend-validation-email --certificate-arn <ARN> --domain subdomain.domain.com --validation-domain domain.com
}
于 2019-05-20T21:18:54.160 回答