问题描述
AWS文档声称,如果我在另一个DNS域名中有一个注册域,那么我必须在该注册域上更新名称服务器,因此我想如果我通过指定在R53上注册的域来创建托管区域,名称服务器将自动更新。这是我的CloudFormation的一部分:
HostedZone:
Type: "AWS::Route53::HostedZone"
Properties:
Name: example.com
我确实已经在R53上注册了example.com,但是当我转到该域时,它的托管服务器SOA记录中的域名服务器却与此不同。
如果我这样做,文档也声称https://aws.amazon.com/blogs/security/how-to-use-aws-certificate-manager-with-aws-cloudformation/
我确实这样:
SSLCertificate:
Type: AWS::CertificateManager::Certificate
Properties:
DomainName: example.com
ValidationMethod: DNS
DomainValidationoptions:
- DomainName: example.com
HostedZoneId: !Ref HostedZone
它说应该已经自动验证了SSL证书,但是堆栈在这里停止了,我必须去证书管理器(当然是在更新名称服务器之后),即使单击“导入到R53”(CNAME), CNAME是在托管区域中自动创建的,但其值有误,然后堆栈继续前进。
我做错什么了吗?
解决方法
“错误的CNAME记录”可能是此处的关键字,您是否尝试过从CF模板中删除证书资源,使用它更新stavk,清理CNAME条目,确保从ACM中删除了证书然后添加将证书资源再次添加到CF模板?
我的猜测朝着CloudFormation如何更新资源的方向发展。对于证书,大多数更改都需要重新创建,这意味着首先创建一个新证书,然后在成功创建新证书后删除旧证书。 男性有这种行为,但有时会引起问题。
还要确保DomainName
与Validation
属性字段中的相同。由于配置错误,以下模板无法验证:
Resources:
Certificate:
Type: AWS::CertificateManager::Certificate
Properties:
DomainName: www.example.com
DomainValidationOptions:
- DomainName: example.com
HostedZoneId: !Ref Zone
ValidationMethod: DNS