amazon-web-services - 无法使 HTTPS 在 CloudFront 和 Elastic BeanStalk 之间工作

标签 amazon-web-services ssl https amazon-cloudfront amazon-elastic-beanstalk

我正在尝试在我的应用程序中设置 HTTPS,它包含一个前端(随 CloudFront 分发的 S3 存储桶)和一个后端(Elastic Beanstalk 中的 node.js 应用程序)。

对于 CloudFront 部分,我在北弗吉尼亚州创建了一个 SSL 证书(显然我在这里没有选择)并且我在 CloudFront 分发中进行了绑定(bind)。它有效,我的应用程序通过 HTTPS 提供服务。

对于 Elastic Beanstalk 部分,我在爱尔兰(托管我的 EBS 应用程序的地方)创建了一个 SSL 证书,并使用端口 443 将该证书绑定(bind)到 EBS 负载均衡器。它有效,我可以使用 HTTPS 访问我的服务器 postman 。

但是,当我的前端尝试对后端进行 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 名称 www.mydomain.com 指向 CloudFront 分发

    • 配置为服务 www.mydomain.com
    • 为域 www.mydomain.com 配置了 SSL 证书
    • 配置从源头beanstalk.mydomain.com
  • DNS 名称 beanstalk.mydomain.com 指向 Elastic Beanstalk 应用程序

    • 使用负载均衡器,使用 beanstalk.mydomain.com 的 SSL 证书

关于amazon-web-services - 无法使 HTTPS 在 CloudFront 和 Elastic BeanStalk 之间工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58125244/

相关文章:

javascript - CORS - 从 HTTPS 到 HTTP 的跨域 POST

amazon-web-services - 从 DynamoDb 查询的 Python 脚本不提供所有项目

c# - C#/.Net 中的 SSL MaxFragmentLength 扩展

php - 重定向到非 https 页面

security - Poodle 漏洞的简单解释?

spring - 在 Spring security 中是否可以仅使用 HTTPS 进行登录?

http - bower 使用 http 而不是 https

ios - AWS SNS 错误参数无效 : Token Reason: Endpoint xxx already exists with the same Token, 但属性不同

amazon-web-services - Fn::ImportValue 不喜欢 Fn::Sub 的简短表示法

amazon-web-services - 我可以像在本地集群上一样在 EMR 上运行作业吗