问题

我正在尝试在我的应用程序中设置HTTPS,包括前端(使用CloudFront分发的S3桶)和后端(Elastic Beanstalk中的node.js应用程序).

对于CloudFront部分,我在N.Virginia创建了一个SSL证书(显然我在这里没有选择),我在CloudFront分发中创建了绑定.它有效,我的应用程序通过HTTPS提供.

对于Elastic Beanstalk部分,我在爱尔兰创建了一个SSL证书(我的EBS应用程序托管),我使用端口443将此证书绑定到EBS负载均衡器.它有效,我可以使用Postman使用HTTPS到达我的服务器.

但是,当我的前端尝试对后端进行API调用时,我收到此错误: enter image description here

我想我在创建证书时犯了一个错误,但我找不到它.我给了两个证书相同的Cnames,我不确定我是否应该这样做.

编辑:

更新前端后,我得到完全相同的错误,以便它指出负载均衡器的dname(也用Route 53映射到子域).

enter image description here

  最佳答案

CloudFront正在尝试从负载均衡器加载HTTPS URL.我假设你有一个SSL验证分配给负载均衡器.负载均衡器上的SSL证书的域名需要匹配CloudFront请求的域名.

例如,如果负载均衡器的SSL证书是beanstalk.mydomain.com,那么CloudFront需要为https://beanstalk.mydomain.com提出请求. CloudFront给你的错误是,负载均衡器提供的SSL证书的域名与域名djumbo-back-debug.eu-west-1.elasticbeanstalk.co不匹配.

您需要设置以下内容:

  • DNS Name www.mydomain.com指向CloudFront分布

    • 配置为服务www.mydomain.com
    • 使用域 www.mydomain.com 的 SSL 证书配置
    • c# – 配置从原始beanstalk.mydomain.com提取
  • DNS Name beanstalk.mydomain.com指向Elastic Beanstalk应用程序

    • 使用Load Balancer,具有beanstalk.mydomain.com的SSL证书