AWS CloudFront 现在需要备用 cname 才能具有导致问题的安全证书
AWS CloudFront now requiring alternate cname to have security certificate causing problem
- 我在 jthinkws.elasticbeanstalk.com
有一个弹性豆茎实例
- 我有一个 jthinkws.com dns 设置 Route 53
- 我有 direct.jthinkws.com 指向 CNAME jthinkws.elasticbeanstalk.com
- 然后我将 原始域名 设置为 直接 jthinkws.com 和 备用的 Cloudfront 分配cname 设置为 search.jthinkws.com
- 我在 Route 53 中 search.jthinkws.com 记录设置为 A,Alias 指向云端分布。
- 然后我的应用程序通过搜索进行访问。jthinkws.com 因此,如果它是一个新请求,那么 Cloudfront 将从 jthinkws.elasticbeanstalk.com 发出请求并缓存结果,如果请求已被 Cloudfront 缓存,则无需转到 jthinkws.elasticbeanstalk.com
这多年来一直运作良好。
最近我不得不重新创建我的 Cloudfront 发行版。所以首先我暂时将 search.jthinkws.com 指向 jthinkws.elasticbeanstalk.com 域然后禁用并删除旧的分发然后创建新的 Cloudfront分配。但它不再工作,因为它不允许我添加 search.jthinkws.com 作为备用 cname,因为它没有安全证书
com.amazonaws.services.cloudfront.model.InvalidViewerCertificateException:
To add an alternate domain name (CNAME) to a CloudFront distribution,
you must attach a trusted certificate that validates your
authorization to use the domain name. For more details, see:
https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-requirements
所以我去了 AWS Certifcate Manager 获取证书,但它说如果我使用 DNS 验证,那么 AWS 将创建无法修改的 CNAME 记录,我担心这会破坏我的配置。 Whois 没有列出任何电子邮件地址(尽管它们在我为域名付费的公司内是可见的)所以我不确定这是否会奏效。
感谢任何帮助。
好的,我让它工作了。
如果您使用 DNS 验证,它创建的记录不是针对域而是子域,例如
_72d863ce40127aac000cf4d20fe972ea.search.jthinkws.com
而不是
search.jthinkws.com
因此它不会影响配置,如果 AWS 是这些域的 DNS 管理器,那么它可以为您创建 Route53 记录。
我遇到了几个问题:
当我第一次创建证书时,它创建的默认区域是 EU-West 爱尔兰 但事实证明它们必须在 美国东弗吉尼亚州 以便 Cloudfront 能够使用它们。
您必须将证书的 arn 输入到 Cloudfront 中,没有下拉列表,因此您必须进入证书管理器,查看证书并复制并粘贴 ARN 字段
例如
arn:aws:acm:us-east-1:623196878787496:certificate/d049878781-20b6-4cb5-a70a-6e86758936d2
- 我在 jthinkws.elasticbeanstalk.com 有一个弹性豆茎实例
- 我有一个 jthinkws.com dns 设置 Route 53
- 我有 direct.jthinkws.com 指向 CNAME jthinkws.elasticbeanstalk.com
- 然后我将 原始域名 设置为 直接 jthinkws.com 和 备用的 Cloudfront 分配cname 设置为 search.jthinkws.com
- 我在 Route 53 中 search.jthinkws.com 记录设置为 A,Alias 指向云端分布。
- 然后我的应用程序通过搜索进行访问。jthinkws.com 因此,如果它是一个新请求,那么 Cloudfront 将从 jthinkws.elasticbeanstalk.com 发出请求并缓存结果,如果请求已被 Cloudfront 缓存,则无需转到 jthinkws.elasticbeanstalk.com
这多年来一直运作良好。
最近我不得不重新创建我的 Cloudfront 发行版。所以首先我暂时将 search.jthinkws.com 指向 jthinkws.elasticbeanstalk.com 域然后禁用并删除旧的分发然后创建新的 Cloudfront分配。但它不再工作,因为它不允许我添加 search.jthinkws.com 作为备用 cname,因为它没有安全证书
com.amazonaws.services.cloudfront.model.InvalidViewerCertificateException: To add an alternate domain name (CNAME) to a CloudFront distribution, you must attach a trusted certificate that validates your authorization to use the domain name. For more details, see: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-requirements
所以我去了 AWS Certifcate Manager 获取证书,但它说如果我使用 DNS 验证,那么 AWS 将创建无法修改的 CNAME 记录,我担心这会破坏我的配置。 Whois 没有列出任何电子邮件地址(尽管它们在我为域名付费的公司内是可见的)所以我不确定这是否会奏效。
感谢任何帮助。
好的,我让它工作了。
如果您使用 DNS 验证,它创建的记录不是针对域而是子域,例如
_72d863ce40127aac000cf4d20fe972ea.search.jthinkws.com
而不是
search.jthinkws.com
因此它不会影响配置,如果 AWS 是这些域的 DNS 管理器,那么它可以为您创建 Route53 记录。
我遇到了几个问题:
当我第一次创建证书时,它创建的默认区域是 EU-West 爱尔兰 但事实证明它们必须在 美国东弗吉尼亚州 以便 Cloudfront 能够使用它们。
您必须将证书的 arn 输入到 Cloudfront 中,没有下拉列表,因此您必须进入证书管理器,查看证书并复制并粘贴 ARN 字段
例如
arn:aws:acm:us-east-1:623196878787496:certificate/d049878781-20b6-4cb5-a70a-6e86758936d2