【问题标题】:How to use HTTPS on localhost:3000如何在 localhost:3000 上使用 HTTPS
【发布时间】:2017-05-18 15:12:00
【问题描述】:

我的申请要求:

""您的 Web 表单的 URL,将显示在 Worker 的 Web 浏览器的框架中。此 URL 必须使用 HTTPS 协议。""

我的 AWS EC2 实例上运行了节点 js。出于某种原因,我在将其作为生产服务器运行时遇到问题serve -s build

但是当我在我的项目文件夹中npm start 时,它会在端口 3000 上运行一个开发服务器,我可以通过 http://ec2----------.compute-1.amazonaws.com:3000/ 访问它

但这不适用于 https。有没有办法可以使用 https 访问相同的 url?类似的东西:

https://ec2----------.compute-1.amazonaws.com:3000/

到目前为止我看到的方法:反向代理和 Nginx。

但是没听懂。

【问题讨论】:

  • HTTPS 连接需要证书,该证书专门分配给域。此域包括端口值。亚马逊已为域*.amazonaws.com上的端口443授权证书
  • 这是否意味着我可以在 443 上启动我的开发服务器?

标签: node.js amazon-web-services nginx amazon-ec2


【解决方案1】:

如果您在 EC2 实例前使用弹性负载均衡器,那么 AWS 提供了一种让 HTTPS 正常工作的非常简单的方法。如果您想直接访问实例,则需要在 node.js 中配置 HTTPS 或使用 HTTPS 服务将流量代理到您的 node.js 应用程序。

【讨论】:

  • 在第一种情况下,我使用的是公共 dns,我是否选择“上传 ssl 证书”?第二种情况我正在尝试这样做。谢谢。我会尽快接受。
  • 您可以使用 AWS Certificate Manager 创建一个用于 ELB。如果在 AWS 资源上使用它,我认为不会收费。 docs.aws.amazon.com/elasticloadbalancing/latest/classic/…
  • 您需要一个域。我没有域。我正在使用 ec2 实例的公共 dns 访问我的网站。
  • 如果您正在使用它,那么您需要在 node.js 应用程序中支持 HTTPS,或者使用带有 ssl 终止的 nginx 之类的中间层。不过,您仍然需要使用的 dns 名称的证书。其他替代方法是使用 Elastic Beanstalk 进行部署,因为它为您配置 ELB 和 nginx,使用 CloudFront,因为它在 cloudfront.net 域上提供 HTTPS 支持,或者在 Route53 中注册您自己的域。
  • 是的,我理解了你的观点并注册了一个域。 sentien.tech 现在为我工作。我在端口 3000 上路由 https 请求。我还在这里写过博客:sites.google.com/gwmail.gwu.edu/aws-tools
【解决方案2】:

第 1 步:选择负载均衡器

创建负载均衡器时的 2 个选择:

Application Load Balancer :如果您的应用程序在特定端口或开发模式下运行,或者您需要基于路径的路由。就在应用层完成路由决策而言,这是一个不错的选择。它只能从 HTTP 和 HTTPS 监听。

经典负载均衡器:如果您需要直接从传输层做出路由决策。你可以选择一个。 我将继续使用 Application Load Balancer,尽管大多数阶段都是相同的。

第 2 步:配置负载均衡器 简单快速的配置:

名称:为您的负载平衡器命名。

方案

面向互联网:如果您希望通过互联网从客户端发出请求,请选择此项。

internal:如果您希望来自客户端的请求使用私有 IP,请选择此项 地址。

IP 地址类型:ipv4

监听器 侦听器是一个使用您配置的协议和端口检查连接请求的进程。 应用负载均衡器中只能有两个监听器,分别是:

HTTP 端口 80 端口 443 上的 HTTPS

可用区

负载均衡器的主要工作是维护跨不同区域和区域的流量。一个地区有多个可用区。这些可以想象为在 us-east 中放置多个服务器,这些可用区每个都有一个单独的子网。但只能为特定区域选择一个子网。

您需要选择至少 2 个具有不同子网的此类可用区。这基本上有助于负载平衡器平衡至少 2 台服务器上的负载。

第 3 步:配置安全设置并添加实例 如果您在上一步中选择了侦听 https,则配置安全设置包括指定证书。由于您选择了 https 侦听器,AWS 需要使用证书。您可以了解如何从 AWS Certificate Manager 获取证书。在这里你必须选择:

证书类型:从 AWS Certificate Manager (ACM) 中选择现有证书

证书名称:在下拉列表中弹出证书名称。

选择最新的安全策略 安全策略:ELBSecurity-2016-08

选择为您的实例创建的现有安全组。 第 4 步:目标群体 创建一个目标组。根据它所听的内容和它的目标来命名它。 您必须提及侦听器将流量定位到的路径和端口。

第 5 步:部署

查看设置后,部署并创建负载均衡器。这将完成所有的清洁和管理。这就像为您的服务器流量聘请经理一样。你现在可以去冥想一段时间。 负载均衡器需要将近一分钟才能启动。负载均衡器激活后。在主负载均衡器仪表板上复制负载均衡器的 DNS 链接,因为我们将在下一步中需要它。它看起来像这样:

load-balancer-name-xxxxxxxxxx.us-east-x.xxx.amazonaws.com (A Record)

第 6 步:将您的域名映射到负载均衡器

通过将域名(例如 www.example.com)转换为计算机用来相互连接的数字 IP 地址(例如 192.0.2.1),提供一种可靠且经济高效的方式将访问者路由到网站。 AWS 将 URL 分配给您的资源,例如负载均衡器。但是,您可能需要一个易于用户记住的 URL。例如,您可以将您的域名映射到负载均衡器。

转到 Route 53 并为您的域名选择托管区域和记录集。

You need to create a new record : 
1) Leave the domain name blank. 
2) Select Yes for Alias.
3) Paste the DNS link for the Load Balancer in the Alias Target.
4) Create.

这一步基本上是风险转移。它将域名路由到负载均衡器的 dns。因此解决了我们处理流量的目的。其余的工作由 ELB 处理,它将其统计信息转换为运行状况报告,您可以在此基础上创建和替换更多实例。

祝你玩得开心!

引用:https://sites.google.com/gwmail.gwu.edu/aws-tools/aws-elastic-load-balancer?authuser=0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-21
    • 1970-01-01
    相关资源
    最近更新 更多