Cloudfront备用域名InvalidViewerCertificateException异常。

问题描述 投票:0回答:1

我的设置

  • EC2:应用程序
  • 域名注册商: namecheap
  • DNS:路由53

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

我在EC2内使用certbot提供SSL连接。

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

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 而且是经过验证的。

我不知道该如何解决。有什么建议吗?

amazon-web-services ssl amazon-cloudfront amazon-route53 certbot
1个回答
1
投票

这将是由于你所提供的ACM证书使用了无效的域名造成的。

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

为了进一步解释这个问题。

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

因为它是在ACM中生成的,我们可以验证这个证书是兼容的,只要它满足了 以下条件.

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

© www.soinside.com 2019 - 2024. All rights reserved.