首页 > 解决方案 > 将 Node js 服务器(在弹性 beanstalk AWS 上)url 更改为 HTTPS

问题描述

我正在尝试使用 AWS s3 存储桶部署我的 React js 应用程序。但是,我对 AWS 还很陌生,并且过得很艰难。这个反应应用程序与一个节点/快速服务器通信,该服务器托管在弹性 beanstalk 环境中。我以前有以下错误:

Mixed Content: The page at 'https://myReactApp.s3.amazonaws.com/index.html' was loaded over HTTPS, but requested an insecure resource 'http://myElasticBeanstalkServer.us-east-1.elasticbeanstalk.com/signIn?username=lsharon&password=test4321'. This request has been blocked; the content must be served over HTTPS.

我开始尝试弄清楚如何将我的 EB 网址“转换”为 HTTPS。我发现了很多关于获取 ssl 证书的信息。我对整个过程很困惑。这是我所做的:

  1. 我确实有一个域名,通过谷歌域名注册。我用它来获得一个 ssl 证书。我的 ssl 证书是通过 AWS 证书管理器控制台验证的。但是,我有点困惑这与托管在弹性 beanstalk 上的节点服务器有何关系。我使用 EB url 连接到这个 API……不是我的域名。如何使用我的 ssl 证书来保护我的服务器 url?
  2. 我确实找到了一些关于在 Route 53 中创建托管区域以及在我的弹性 beanstalk 环境中的负载均衡器上添加 443 端口的信息。然而,我很快就迷路了。我是在EB环境中只使用443监听,还是我也需要443进程?有人可以向我解释一下吗?此外,关于 Route 53 托管区域,我是使用我的域名还是我的 API(弹性 beanstalk)url 创建托管区域?当我创建别名时,我应该将流量路由到哪里?我的域名、我的 EB 网址或我的 s3 存储桶?

目前,当我在浏览器中加载我的静态网页时,它呈现得很好并且说安全。但是,当我单击其中一个按钮(因此向我的 EB url 发送获取请求)时,它也可以工作,但会更改为不安全并说我的 ssl 不安全。

我为所有的问题道歉。我只是觉得很迷茫,似乎找到了很多信息,但似乎无法让它正常工作。如果有人可以帮助我,我肯定会很感激。

标签: javascriptreactjsamazon-web-servicesamazon-s3amazon-elastic-beanstalk

解决方案


要回答您的第一个问题,您必须在某处设置 DNS,无论是在您的 Google Domains 帐户中还是在 Route53 中,具体取决于您想将谁用作 DNS 主机,将域名指向负载平衡器。

我使用 EB url 连接到这个 API……不是我的域名。如何使用我的 ssl 证书来保护我的服务器 url?

在进行 API 调用时,您必须更改您的前端应用程序以使用与 SSL 证书匹配的域(并且也使用https而不是http那些 API 调用)。如果您希望 Web 浏览器停止抱怨这些安全问题,则没有其他选择。

要回答您的第二个问题,AWS Certificate Manager 中的 SSL 证书可以附加到负载均衡器,该负载均衡器将为您处理终止 SSL。负载均衡器仍然可以使用非加密 HTTP 与 EC2 实例通信。因此,您需要做的就是将 SSL 证书附加到负载均衡器中的端口 443 侦听器。


推荐阅读