【问题标题】:Unable to get AWS CDK ACM DNS Validated certificate to create无法获取 AWS CDK ACM DNS 验证证书来创建
【发布时间】:2023-02-14 16:39:27
【问题描述】:

我似乎无法获得 ACM DNS 验证证书(aws-cdk 2.23.02.24.0)来验证 .info 域。每次都会超时。我很确定几个月前我成功地使用了同样的代码。我想知道是否有什么改变?

const zone = HostedZone.fromHostedZoneAttributes(this, 'zone', {
  zoneName: 'mydomain.info',
  hostedZoneId: 'Z0xxxxxxxxx',
});

const certificate = new Certificate(this, 'certificate', {
  domainName: 'mydomain.info',
  validation: CertificateValidation.fromDns(zone),
});

// I've also tried:
const certificate = new DnsValidatedCertificate(this, 'certificate', {
  domainName: 'mydomain.info',
  hostedZone: zone,
});

我从 CDK 得到的错误是:

Received response status [FAILED] from custom resource. Message returned: Resource is not in the state certificateValidated (RequestId: .....)

我猜这是因为验证超时。

我可以看到验证记录已在托管区域中创建:

_c66d3e7c05fac89b27b619c84677ebb5.mydomain.info CNAME   Simple  -   _7347cc5c453e83adefc9ad849cdeab8e.rdnyqppgxp.acm-validations.aws.

我不确定如何找出验证失败的原因。

【问题讨论】:

    标签: amazon-web-services aws-cdk aws-certificate-manager


    【解决方案1】:

    ℹ️ DnsValidateCertificate2.62.0 以来已弃用。您现在应该使用Certificate 类。对于跨区域证书(您定义区域的地方,例如必须位于 us-east-1 中的 CloudFront 证书,请查看 this example

    这段代码正是你所需要的,你是对的:

    const zone = HostedZone.fromHostedZoneAttributes(this, 'zone', {
      zoneName: 'mydomain.info',
      hostedZoneId: 'Z0xxxxxxxxx',
    });
    
    const certificate = new DnsValidatedCertificate(this, 'certificate', {
      domainName: 'mydomain.info',
      hostedZone: zone,
    });
    
    1. 正在创建的记录意味着您的 Route53 区域已被找到。
    2. 验证失败意味着您域的公共 DNS 不显示此记录

      我的猜测是您创建了 Route53 区域,但没有更改域的 NS 记录。您可以手动检查它:

      host -t CNAME _c66d3e7c05fac89b27b619c84677ebb5.mydomain.info
      # Should output this:
      # _7347cc5c453e83adefc9ad849cdeab8e.rdnyqppgxp.acm-validations.aws.
      

      如果您遇到“未找到主机”错误,那么好!

      检索您的 Route53 区域名称服务器(应该有 4 个或它们,看起来像 ns-*.awsdns-*.*),您可以在区域详细信息页面的顶部轻松找到它们。

      mydomain.info 原始区域(您注册域的位置)中,将此名称服务器列表放入 NS 记录中,然后重试您的 ACM 证书创建。您可以使用以下命令检查委托是否有效:

      $ host -t NS mydomain.info
      # mydomain.info name server ns-123.awsdns-01.net.
      # mydomain.info name server ns-45.awsdns-23.co.uk.
      # mydomain.info name server ns-67.awsdns-45.com.
      # mydomain.info name server ns-89.awsdns-67.org.
      

    【讨论】:

    • 太感谢了!我可以确认我得到了Host ... nor found。该域直接在 aws 上注册并具有 ns-nn.awsdns-nn.xxx. 名称服务器,但有趣的是,host -t NS mydomain.info 给了我一个 Host mydomain.info not found: 3(NXDOMAIN)。奇怪的是 whois mydomain.info 确实返回了正确的名称服务器。
    • 如果我明确指定名称服务器,我确实会收到回复:dig _9915df0a3417de187c76781643e1b78e.mydomain.info @ns-1486.awsdns-57.org
    • 我终于想通了。事实证明这不是 DNS 问题,而是域注册问题。域联系人尚未经过验证,这意味着 AWS 暂停了该域。我正在重试验证过程。 (将其留在这里以备将来使用 Google 搜索)
    • 请注意,DnsValidatedCertificate 现已弃用:github.com/aws/aws-cdk/releases/tag/v2.62.0
    猜你喜欢
    • 2021-12-19
    • 1970-01-01
    • 2020-10-29
    • 2023-02-23
    • 2018-02-05
    • 2020-11-25
    • 1970-01-01
    • 1970-01-01
    • 2022-12-03
    相关资源
    最近更新 更多