当前位置: 首页 > 知识库问答 >
问题:

为什么我的AWS ACM证书没有验证?

施越彬
2023-03-14

我有一个域名注册在AWS Route53与ACM证书。我现在试图将域名和证书都转移到一个新的帐户,以及用Terraform管理资源。我使用AWS CLI将域名移动到新的帐户,它似乎工作得很好。然后,我尝试运行这个Terraform代码为域创建一个新的证书和宿主区域。

resource "aws_acm_certificate" "default" {
  domain_name       = "mydomain.io"
  validation_method = "DNS"
}

resource "aws_route53_zone" "external" {
  name = "mydomain.io"
}

resource "aws_route53_record" "validation" {
  name    = aws_acm_certificate.default.domain_validation_options.0.resource_record_name
  type    = aws_acm_certificate.default.domain_validation_options.0.resource_record_type
  zone_id = aws_route53_zone.external.zone_id
  records = [aws_acm_certificate.default.domain_validation_options.0.resource_record_value]
  ttl     = "60"
}

resource "aws_acm_certificate_validation" "default" {
  certificate_arn = aws_acm_certificate.default.arn
  validation_record_fqdns = [
    aws_route53_record.validation.fqdn,
  ]
}

这有两件事很奇怪。首先,创建了证书,但验证从未完成。它仍处于待定验证状态。我在失败后的某个地方读到,您不能自动验证,您需要手动创建CNAME记录。所以我进入控制台,点击“将cname添加到路由53”按钮。这将CNAME记录适当地添加到Terraform创建的新Route53记录中。但已经悬而未决好几个小时了。我已经多次点击同一个按钮,只创建了一个CNAME,随后的点击没有效果。

另一个奇怪的,也许是一个线索,是我的网站仍然是运行和工作。我相信这应该破坏了网站,因为域现在由一个新帐户拥有,路由到该新帐户上的另一个托管区域,并且有一个证书现在仍然悬而未决。然而,一切仍照常运转。因此,我认为可能是旧的证书和宿主区域影响了这一点。他们是否需要释放域,我是否需要删除该证书?删除旧帐户上的证书听起来没有必要。我不应该再被送出去了。

我还没有将证书与Cloudfront或ALB关联,我打算这样做。但是由于它没有经过验证,所以我创建Cloudfront实例的Terform代码就会失效。

共有1个答案

仇飞鹏
2023-03-14

事实证明,我的转移域是与一组名称服务器一起转移的,然而,Route53托管区域中的名称服务器都是不同的。当这些通过控制台一起创建时,它就做了正确的事情。我不确定如何在这里用Terraform做正确的事情,我现在将发布另一个关于Terraform的问题。但目前,解决方案是更改宿主区域或注册域上的名称服务器,以相互匹配。

 类似资料:
  • 问题内容: 从JavaDoc: 验证此容器及其所有子组件。验证容器意味着布置其子组件。 那就是我想做的。使用尽可能轻巧的组件。但是当我这样做时,对的调用不会使组件“有效”。 为什么我不能做一个有效的? 问题答案: 在文档中说: 当组件在其父容器中的大小和位置正确且其所有子组件也均有效时,该组件才有效。 这种情况,直到你达到顶级容器(,或)。在您所遇到的问题的示例中,您没有父母,所以它永远不会有效。

  • inter证书有什么用? 我有这个证书链: root-VeriSign Class 3 Public Primary Certification Authority-g5.cer Inter-Symantec Class 3 EV SSL CA-G3.CER website.pfx

  • MarkFisher.Local使用了无效的安全证书。证书不是来自受信任的源。错误代码:MOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY 我已按此答案中的建议将设置为。此外,转到首选项>隐私与安全>查看证书,我可以看到我的证书在“授权”选项卡中,并且我已经在“编辑信任”对话框中选中了“此证书可以标识网站”。这个原来没有检查 然而,Firefox拒绝接受该证

  • 我正在开发一个应用程序,它提取其他应用程序的Swagger规范并为它们推断一个UI,具有与API交互所需的所有功能。 现在,我在尝试实现OAuth2身份验证时遇到了一个问题。使用OAuth2,您始终需要注册的cientId才能获得访问令牌。问题在于,swagger规范不需要在OAuth2安全定义中提供clientId。 这意味着clientId应该在用户想要访问的任何OAuth2服务器中为我自己的

  • 我有一个通过Interface Builder定义的布局约束视图。由于它们无法暂时停用,我决定通过拨打以下电话有选择地删除它们: 但是,之后约束仍然驻留在视图中。约束。此外,我还希望以编程方式添加约束(同样,因为我无法(取消)激活它们): 对我的方法的任何调用都会导致变量wasAdded的值NO。这也反映在用户界面上,它根本没有改变。 最后,我既不能以编程方式添加约束,也不能删除添加到情节提要的约

  • 问题内容: 我知道静态方法在类级别。因此,我知道我不需要创建实例来调用静态方法。但我也知道我可以将静态方法(如LIKE)称为实例方法。这是我感到困惑的地方,因为我期望从null对象调用静态方法(就像在调用实例方法中一样)。我真的很感谢一些解释,为什么我错了一个期望。 这是示例代码: 问题答案: 通过实例调用静态方法不需要实例存在。只要编译器能够确定变量的类型,它就可以在评估表达式并丢弃结果后静态进