使用 AWS 负载均衡器的安全 Web 套接字 (wss)

Posted

技术标签:

【中文标题】使用 AWS 负载均衡器的安全 Web 套接字 (wss)【英文标题】:Secure Web Socket (wss) using AWS Load Balancer 【发布时间】:2018-07-21 02:47:28 【问题描述】:

我有一个包含 Web 套接字服务器的小型 nodejs 应用程序。 该应用程序托管在 ecs 容器中,因此它基本上是在 ec2 实例上运行的 docker 映像。

网络套接字在ws:// 上按预期工作。我为此使用端口 5000。

为了在我的 SSL 安全网站 (https) 上使用它,我需要通过 wss:// 使用安全的 Web 套接字连接。

为了存档我在 aws 上创建的证书(就像之前很多次一样)以及在我创建负载均衡器之后。

我尝试了应用负载平衡器、网络负载平衡器和经典负载平衡器(上一代)。

我在 *** 上阅读了一些答案,并按照说明以及使用 google 找到的一些教程进行操作。

我尝试了很多都没有成功。当然,这需要很多时间,因为创建负载均衡器和其他资源需要相当多的时间。

我如何在 aws 上创建一个负载均衡器,并使用 wss:// 指向我的实例。有人可以提供示例或说明吗?

【问题讨论】:

创建一个应用程序负载均衡器,将证书与端口 5000 上的侦听器相关联(或者,为什么要复杂化?使用端口 443...)并配置您的目标组,您应该完成。如果它不起作用,您需要查看来自平衡器和应用程序的日志,并进行一些基本的低级故障排除并报告您的观察结果。 现在有这个问题。你成功了吗? 遇到了完全相同的问题,您找到合适的 ALB 配置了吗?请分享。 【参考方案1】:

发布的解决方案 https://anandhub.wordpress.com/2016/10/06/websocket-ebs/ 似乎运作良好。

不要选择 https 和 http,而是选择端口 443 上的“SSL”和应用程序端口(例如 5000)上的“TCP”

您需要通过 AWS 加载您的密钥/证书,负载均衡器将处理安全部分。我怀疑您无法通过这种方法利用 LB 的“粘性”功能。

【讨论】:

以上是关于使用 AWS 负载均衡器的安全 Web 套接字 (wss)的主要内容,如果未能解决你的问题,请参考以下文章

AWS考证方向:实现WEB负载均衡

Azure 回复 url 在 AWS 负载均衡器后面总是不安全

AWS 负载均衡器背后的 Sidekiq Web

网络负载均衡器的AWS EC2安全组权限

AWS 网络负载均衡器和 HTTPS 端点 [关闭]

AWS Copilot 多负载均衡 Web 服务