gpt4 book ai didi

ssl - 使用 Stunnel 将 wss 连接到 wsServer

转载 作者:行者123 更新时间:2023-12-04 22:38:58 25 4
gpt4 key购买 nike

我正在尝试使用 stunnel 将 wss 连接转换为 ws 连接,因为 wsServer不支持wss。服务器运行的是 Ubuntu,而我使用的客户端是 Chrome,如果重要的话。
这是我的stunnel.conf文件

foreground = yes
debug = info
output = /var/log/stunnel.log

[wsServer]
cert = /etc/letsencrypt/live/myurl.com/fullchain.pem
key = /etc/letsencrypt/live/myurl.com/privkey.pem
accept = 0.0.0.0:8443
connect = 127.0.0.1:8080
我正在尝试通过 javascript 调用连接到它:
const socket = new WebSocket('wss://myurl.com:8433');
但我一直收到连接错误:
(index):13 WebSocket connection to 'wss://myurl.com:8433/' failed: (anonymous) @ (index):13
这是我检查过的内容:
  • 我的端口转发/系统防火墙没有吃掉连接。如果我杀死 stunnel 并在端口 8080 或 8433 上设置一个常规套接字监听,我可以从客户端计算机连接到该套接字。
  • wsServer 接受非加密流量,如果我改为连接 ws://myurl.com:8080它工作正常
  • wsServer 可以很好地接受来自 localhost 的连接,我知道当 stunnel 与服务器在同一台机器上运行时这是必要的
  • Chrome 在用于同一域下的 https 页面时接受我的证书,所以我认为我没有证书签名错误,但我不知道如何判断证书是否与连接失败有关
  • Stunnel 启动时不打印任何错误
  • 没有任何内容被打印到 /var/log/stunnel.log ,虽然该文件是在我将输出字段添加到 .conf 文件
  • 之后创建的

    关于我还能尝试什么的任何想法?是否有某些原因适用于 https 的证书不适用于 wss?
    人们是否建议通过 apache 使用 ProxyPass 并完全避免使用 stunnel?

    最佳答案

    不是解决方案,而是下一个故障排除步骤。获取自己的 openssl 并尝试连接到 8443。这应该会返回证书信息并至少确认 stunnel 正在提供证书。

    openssl s_client -connect myurl.com:8443
    自从我配置 stunnel 以来已经有一段时间了,但是 IIRC 你不能在你的 key 上输入密码。

    关于ssl - 使用 Stunnel 将 wss 连接到 wsServer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72251592/

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