Terraform 强制用多个“subject_alternative_names”替换“aws_acm_certificate”

问题描述 投票:0回答:2

我正在尝试创建一个具有多个

aws_acm_certificate
subject_alternative_names

resource "aws_acm_certificate" "cert" {
  provider          = aws.acm
  domain_name       = local.domain_name
  validation_method = "DNS"
  subject_alternative_names = [local.domain_name, "www.${local.domain_name}"]
}

首次运行

apply
的效果如广告所示。但是,当我使用完全相同的变量重新运行
apply
时,terraform 希望重新创建证书,原因如下:

   ~ subject_alternative_names = [ # forces replacement
       + "xyz.com",
         "www.xyz.com",
     ]

看起来

[local.domain_name, "www.${local.domain_name}"]
与当前状态相比有所不同。

对这里发生的事情有什么想法吗?

terraform terraform-provider-aws aws-acm
2个回答
4
投票

看起来

subject_alternative_names
不应包含证书自己的域名。

如果我将

subject_alternative_names
更改为
["www.${local.domain_name}"]
,它似乎做了正确的事情。不确定这是否是一个错误或强制使用
subject_alternative_names
的正确方法,因为我已经看到许多证书在
subject_alternative_names
中包含自己的域名。

如果有人有更好的分析,我很想听听。


0
投票

subject_alternative_names似乎是关键。感谢 max.ott

我能够使用以下方法解决这个问题:

resource "aws_acm_certificate" "vpn" {
  domain_name       =  "vpn.${var.domain_name}"
  certificate_authority_arn =aws_acmpca_certificate_authority.ca.arn
  subject_alternative_names = []
© www.soinside.com 2019 - 2024. All rights reserved.