排查分配问题 - Amazon CloudFront

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

排查分配问题

使用此处的信息可以帮助您诊断和修复证书错误、访问被拒绝问题或在使用亚马逊 CloudFront 发行版设置网站或应用程序时可能遇到的其他常见问题。

CloudFront 当我尝试添加备用域名时返回InvalidViewerCertificate错误

如果您在尝试向分配中添加备用域名 (CNAME) 时 CloudFront 返回InvalidViewerCertificate错误,请查看以下信息以帮助解决问题。此错误可能指示必须先解决以下问题之一,然后才能成功添加备用域名。

以下错误按 CloudFront 检查添加备用域名的授权顺序列出。这可以帮助您解决问题,因为根据 CloudFront 返回的错误,您可以判断哪些验证检查已成功完成。

没有证书附加到您的分配。

要添加备用域名 (CNAME),您必须在分配中附加可信且有效的证书。请检查要求,获得符合要求的有效证书,将其附加到您的分配中,然后重试。有关更多信息,请参阅 使用备用域名的要求

在您附加的证书的证书链中有过多的证书。

一个证书链中最多只能有五个证书。减少链中的证书数,然后重试。

证书链包含的一个或多个证书对于当前日期无效。

已添加的证书的证书链中有一个或多个证书无效,可能是证书迄今尚未生效,或者证书已过期。检查证书链中证书的 Not Valid Before(生效日期)和 Not Valid After(到期日期)字段,确保基于您所列日期所有证书都有效。

附加的证书未获得信任的证书颁发机构 (CA) 的签字。

您为验证备用域名 CloudFront 而附加的证书不能是自签名证书。必须获得信任的 CA 的签名。有关更多信息,请参阅 使用备用域名的要求

您附加的证书的格式不正确

证书中包括的域名和 IP 地址的格式以及证书本身的格式都必须遵循证书标准。

出现 CloudFront 内部错误。

CloudFront 因内部问题而被阻止,无法对证书进行验证检查。在这种情况下, CloudFront 返回 HTTP 500 状态码,并表示附加证书时存在内部 CloudFront 问题。等待几分钟,然后重试以在证书中添加备用域名。

附加的证书不涵盖您尝试添加的备用域名。

对于您添加的每个备用域名,都 CloudFront 要求您附上来自可信证书颁发机构 (CA) 且涵盖该域名的有效 SSL/TLS 证书,以验证您的使用授权。请更新您的证书,以包含涵盖您尝试添加的 CNAME 的域名。有关在域名中使用通配符的更多信息和示例,请参阅使用备用域名的要求

我无法查看我的分配中的文件

如果您无法查看 CloudFront 发行版中的文件,请参阅以下主题以了解一些常见解决方案。

你有没有同时注册两者 CloudFront 兼而有之 Amazon S3?

要将亚马逊 CloudFront 与亚马逊 S3 源一起使用,您必须分别注册两者 CloudFront 以及亚马逊 S3。有关注册 CloudFront 和 Amazon S3 的更多信息,请参阅设置

您的 Amazon S3 存储桶和对象权限的设置是否正确?

如果您 CloudFront 使用的是 Amazon S3 来源,则内容的原始版本将存储在 S3 存储桶中。 CloudFront 与 Amazon S3 配合使用的最简单方法是让您的所有对象在 Amazon S3 中公开可读。为此,您必须为上传到 Amazon S3 中的每个对象明确启用公共读取权限。

如果您的内容不是公开可读的,则必须创建 CloudFront 源访问控制 (OAC),这样 CloudFront 才能对其进行访问。有关 CloudFront 源站访问控制的更多信息,请参阅限制对 Amazon S3 源的访问

对象属性和存储桶属性是独立的。您必须明确授予对 Amazon S3 存储桶中每个对象的特权。对象不会从存储桶继承属性,对象属性必须独立于存储桶进行设置。

您的备用域名 (CNAME) 配置正确吗?

如果您的域名已经具有现有的 CNAME 记录,请更新此记录或用指向分配的域名的新记录替换它。

此外,确保您的 CNAME 记录指向您分配的域名,而不是 Amazon S3 存储桶。您可确认您的 DNS 系统中的 CNAME 记录指向您分配的域名。要做到这一点,请使用 DNS 工具,如 dig

以下示例显示对名为 images.example.com 的域名的 dig 请求和响应的相关部分。在 ANSWER SECTION 下,请参阅包含 CNAME 的行。如果CNAME右侧的值是您的 CloudFront 分配的域名,则您的域名的CNAME记录设置正确。如果是您的 Amazon S3 源服务器或一些其他域名,则别名记录 (CNAME) 设置不正确。

[prompt]> dig images.example.com ; <<> DiG 9.3.3rc2 <<> images.example.com ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15917 ;; flags: qr rd ra; QUERY: 1, ANSWER: 9, AUTHORITY: 2, ADDITIONAL: 0 ;; QUESTION SECTION: ;images.example.com. IN A ;; ANSWER SECTION: images.example.com. 10800 IN CNAME d111111abcdef8.cloudfront.net. ... ...

有关别名记录 (CNAME) 的更多信息,请参阅 通过添加备用域名 (CNAME) 使用自定义 URL

您是否为 CloudFront发行版引用了正确的 URL?

请确保您引用的 URL 使用CloudFront 分配的域名(或 CNAME),而不是您的 Amazon S3 存储桶或自定义来源。

您需要帮助来解决自定义源的问题吗?

如果您需要 AWS 帮助您解决自定义源的问题,我们可能需要检查您请求中的 X-Amz-Cf-Id 标头条目。如果您没有记录这些条目,您将来可能需要它。有关更多信息,请参阅 使用 Amazon EC2(或其他自定义源)。如需进一步帮助,请访问 AWS 支持中心

错误消息:证书:<certificate-id>正在被使用 CloudFront

问题:您正在尝试从 IAM 证书存储区中删除 SSL/TLS 证书,但收到消息 “证书:<certificate-id>正在被使用”。 CloudFront

解决方案:每个 CloudFront 分发都必须与默认 CloudFront 证书或自定义 SSL/TLS 证书相关联。在删除 SSL/TLS 证书前,必须轮换证书(将当前的自定义 SSL/TLS 证书替换为其他自定义 SSL/TLS 证书),或从使用自定义 SSL/TLS 证书恢复为使用默认 CloudFront 证书。要修复这一问题,请完成以下过程之一中的步骤: