使用Stunnel连接wss到wsServer
Use Stunnel to connect wss to wsServer
我正在尝试使用 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
这是我检查过的内容:
- 我的 forwarding/system 端口防火墙没有占用连接。如果我关闭 stunnel 并设置一个常规套接字侦听端口 8080 或 8433,我可以从客户端计算机连接到该套接字。
- wsServer 接受非加密流量,如果我改为连接
ws://myurl.com:8080
它工作正常
- wsServer 可以很好地接受来自本地主机的连接,据我所知,当 stunnel 运行 与服务器
在同一台机器上时,这是必要的
- Chrome 在用于同一域下的 https 页面时接受我的证书,所以我不认为我有证书签名错误,但我不知道如何判断证书是否相关连接失败
- Stunnel 启动时不打印任何错误
- 虽然文件是在我将输出字段添加到 .conf 文件后创建的,但
/var/log/stunnel.log
没有打印任何内容
关于我还可以尝试什么的任何想法?适用于 https 的证书不适用于 wss 有什么原因吗?
人们是否推荐通过 apache 使用 ProxyPass 并完全避免使用 stunnel?
不是解决方案,而是下一个故障排除步骤。获取自己的 openssl 并尝试连接到 8443。这应该吐回证书信息并且至少确认 stunnel 正在出示证书。
openssl s_client -connect myurl.com:8443
我配置 stunnel 已经有一段时间了,但是 IIRC 你不能在你的密钥上设置密码。
我正在尝试使用 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
这是我检查过的内容:
- 我的 forwarding/system 端口防火墙没有占用连接。如果我关闭 stunnel 并设置一个常规套接字侦听端口 8080 或 8433,我可以从客户端计算机连接到该套接字。
- wsServer 接受非加密流量,如果我改为连接
ws://myurl.com:8080
它工作正常 - wsServer 可以很好地接受来自本地主机的连接,据我所知,当 stunnel 运行 与服务器 在同一台机器上时,这是必要的
- Chrome 在用于同一域下的 https 页面时接受我的证书,所以我不认为我有证书签名错误,但我不知道如何判断证书是否相关连接失败
- Stunnel 启动时不打印任何错误
- 虽然文件是在我将输出字段添加到 .conf 文件后创建的,但
/var/log/stunnel.log
没有打印任何内容
关于我还可以尝试什么的任何想法?适用于 https 的证书不适用于 wss 有什么原因吗?
人们是否推荐通过 apache 使用 ProxyPass 并完全避免使用 stunnel?
不是解决方案,而是下一个故障排除步骤。获取自己的 openssl 并尝试连接到 8443。这应该吐回证书信息并且至少确认 stunnel 正在出示证书。
openssl s_client -connect myurl.com:8443
我配置 stunnel 已经有一段时间了,但是 IIRC 你不能在你的密钥上设置密码。