gpt4 book ai didi

ssl - WebSockets : wss from client to Amazon AWS EC2 instance through ELB

转载 作者:太空宇宙 更新时间:2023-11-03 12:39:17 27 4
gpt4 key购买 nike

如何通过 SSL 连接到 GlassFish 通过 ELB 在 Amazon AWS EC2 实例上提供的 websocket?

我在 GlassFish 4.1 b13 预发布版中使用 Tyrus 1.8.1 作为我的 websocket 实现。

端口 8080 不安全,端口 8181 使用 ssl 保护。

  • ELB DNS 名称:elb.xyz.com
  • EC2 DNS 名称:ec2.xyz.com
  • 网络套接字路径:/web/socket

我已成功使用 ws 和 wss 直接连接到我的 EC2 实例(绕过我的 ELB)。即以下两个网址均有效:

  • ws://ec2.xyz.com:8080/web/socket
  • wss://ec2.xyz.com:8181/web/socket

我已经通过使用 tcp 80 > tcp 8080 监听器在我的 ELB 上成功使用了 ws(非 ssl)。即以下网址有效:

  • ws://elb.xyz.com:80/web/socket

但是,我还没有找到一种通过我的 ELB 使用 wss 的方法。

我尝试了很多东西。

我假设让 wss 通过我的 ELB 工作的最可能方法是在我的 ELB 上创建一个 tcp 8181 > tcp 8181 监听器并启用代理协议(protocol)并使用以下 url:

  • wss://elb.xyz.com:8181/web/socket

不幸的是,这不起作用。我想我可能必须在 glassfish 上启用代理协议(protocol),但我一直无法找到如何做到这一点(或者如果可能,或者 wss 是否有必要在我的 ELB 上工作)。

另一种选择可能是以某种方式让 ws 或 wss 在 ELB 上终止的 ssl 连接上运行,并通过使用 ssl > tcp 8080 监听器让它继续对 glassfish 不安全。这对我也不起作用,但可能某些设置不正确。

有没有人对我前面提到的两个试验有任何修改。或者有人有其他建议吗?

谢谢。

最佳答案

我有一个类似的设置,最初配置我的 ELB 监听器如下:

  • HTTP 80 HTTP 80
  • HTTPS 443 HTTPS 443

虽然这对网站本身工作正常,但 websocket 连接失败。在监听器中,您需要允许所有安全的 TCP 连接,而不是只允许 wss 通过 SSL:

  • HTTP 80 HTTP 80
  • SSL(安全 TCP)443 SSL(安全 TCP)443

我还建议提高 ELB 的空闲超时。

关于ssl - WebSockets : wss from client to Amazon AWS EC2 instance through ELB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25730368/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com