通过Terraform创建API网关域名时出错

时间:2020-05-19 08:43:24

标签: amazon-web-services terraform

我有Terraform定义:

typeof

应用地形时,出现错误:

错误:创建API网关域名时出错:BadRequestException:分发中所附的证书不包含您要添加的备用域名(CNAME)。

当我应用命令时

resource "aws_api_gateway_domain_name" "apigatewatDomainName" {
  domain_name              = servername.companyname.com
  certificate_arn = "arn:aws:acm:us-east-1:12345566:certificate/dddddd-3333-4444-5555 0123456789a"
}

我正在描述中

aws acm describe-certificate --certificate-arn <certificate-arn>

因此,我假设我可以创建一个类似“ aaa.servername.companyname.com”的域,因此我指定了 资源

"DomainValidationOptions": [
        {
            "ValidationStatus": "SUCCESS",
            "ResourceRecord": {
                "Type": "CNAME",
                "Name": "_88f0a9b77497411fd26c281d7d61fbd9.servername.companyname.com",
                "Value": "_4cee246cb2515f9a0c1f101edaee900e.hkvuiqjoua.acm-validations.aws."
            },
            "ValidationDomain": "*.servername.companyname.com",
            "ValidationMethod": "DNS",
            "DomainName": "*.servername.companyname.com"
        }
    ], 

Also, in this description I see

"SubjectAlternativeNames": [
        "*.servername.companyname.com"
    ], 

但是terraform不允许在资源名称中包含点,我看到了错误

“名称必须以字母或下划线开头,并且只能包含字母,数字,下划线和破折号。”

1 个答案:

答案 0 :(得分:0)

servername.companyname.com颁发的ACM证书似乎不包含您的域*.servername.companyname.com

关于docs中的通配符名称:

当您请求通配符证书时,星号(*)必须位于域名的最左侧,并且只能保护一个子域级别。例如,*。example.com可以保护login.example.com和test.example.com,但不能保护test.login.example.com。另请注意,*。example.com仅保护example.com的子域,而不保护裸域或顶点域(example.com)。

也来自同一文档:

但是,您可以通过在请求中指定多个域名来请求保护裸域或顶点域及其子域的证书。例如,您可以请求保护example.com和* .example.com

的证书