Cloudfront 备用域名 InvalidViewerCertificateException

Cloudfront Alternate Domain Names InvalidViewerCertificateException

我的设置

我使用 EC2 来托管我的应用程序,使用 AWS 路由 53 来引导 url,并使用 cloudfront 来获取我的应用程序的静态文件。现在云端正在使用不友好的域 *.cloudfront.net.

我在我的 EC2 中使用 certbot 来提供 SSL 连接。

当我尝试更改云端域名时,我使用了由 ACM(AWS 证书管理器)生成的 Custom SSL Certificate。我遇到了错误:

com.amazonaws.services.cloudfront.model.InvalidViewerCertificateException: The certificate that is attached to your distribution doesn't cover the alternate domain name (CNAME) that you're trying to add. For more details, see: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-requirements (Service: AmazonCloudFront; Status Code: 400; Error Code: InvalidViewerCertificate; Request ID: 2d39c685-bf17-4d24-9c4b-82955daa878f; Proxy: null)

ACM 证书是在 N.Virginia 中生成的,这很好,因为我的 EC2 托管在那里。我使用 *.example.com 生成了证书并已验证。

我不确定如何解决这个问题。有什么建议吗?

这是由于您提供的 ACM 证书使用的域名无效所致。

因为生成的ACM证书是*.example.com只能使用1级深度子域。

进一步解释:

  • www.example.com 是 ACM 证书的有效子域
  • foo.bar.example.com 不是 ACM 证书的有效子域
  • example.com 对此 ACM 证书无效,因为它是根域(未在 SSL 上引用)。

因为是在ACM中生成的,只要满足following conditions.

我们就可以验证这个证书是兼容的

要使 SSL 用于根域和子域,它必须同时包含 example.com 和 *.example.com 才能在 CloudFront 中正常工作。