在AWS上通过HTTPS运行Express应用程序时出现问题

时间:2020-10-01 01:45:50

标签: node.js amazon-web-services express amazon-ec2 single-page-application

我有一个ExpressJS后端,我想在aws上运行https(因此当尝试与运行在https上的前端连接时,不会出现“混合类型内容”错误),使用http可以很好地运行,但是当使用https无效。 我之前问过这个问题,但我得到了诸如“使用nginx”,“使用负载平衡器”之类的答案,不幸的是,我对这方面的知识不多,因为我对所有的aws变体和选项都不十分了解,是否有任何教程可以循序渐进吗?还是任何简单的方式都可以通过https为我的后端提供服务而又不复杂?

1 个答案:

答案 0 :(得分:2)

有什么简单的方法可以在不复杂的情况下通过https服务我的后端?

最简单的方法(不要与最便宜的方法混淆)是将EB环境更改为负载平衡的环境。您可以在EB控制台的配置设置中执行此操作。

此更改将为您的应用创建应用程序负载平衡器,并将其放置在实例的前面。 ALB运行之后,您可以按照以下AWS指南进行操作:

在上文中,只有Terminate HTTPS on the load balancer部分是相关的。

取决于应用程序的性质,它是完全动态的还是静态的,您还可以考虑使用Using Elastic Beanstalk with Amazon CloudFront而不是ALB。还可以轻松设置CloudFront以在客户端和CloudFront之间使用HTTPS,但是问题是CloudFront与您的EB实例之间的流量会通过未加密(HTTP)的互联网进行传输。显然,您可以将其设置为HTTPS,但这需要进一步的更改和配置,而这不属于“简单方法”类别。