You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用websocketd配置SSL后Edge浏览器wss连接失败求助

排查WebSocket连接失败问题

以下是针对你遇到的WebSocket connection to 'wss://127.0.0.1:8080/' failed错误的排查步骤:

1. 证书主机名不匹配(最可能原因)

从服务启动日志可见,websocketd绑定的主机名是sv2,但你在浏览器中用127.0.0.1访问。snakeoil证书的默认通用名称(CN)是你的主机名sv2,当浏览器用IP地址访问时,证书主机名与访问地址不匹配,SSL验证失败,直接阻断了WebSocket连接。

解决方法:

  • 修改浏览器连接地址为wss://sv2:8080/(需确保本地hosts文件中sv2指向127.0.0.1)
  • 重新生成包含127.0.0.1作为备选名称(SAN)的自签名证书,替换现有snakeoil证书

2. 自签名证书未被Edge信任

snakeoil证书属于自签名证书,Edge默认会拒绝信任这类证书,即便主机名匹配,也可能触发连接失败。

解决方法:

  • 先访问静态页面地址https://sv2:8080/,在Edge的安全提示中选择「继续访问不安全的网站」,再尝试WebSocket连接
  • 手动将snakeoil证书导入Edge的「受信任根证书颁发机构」列表

3. IPv6监听的兼容性问题

netstat显示websocketd仅监听IPv6地址(:::8080),虽然多数系统的IPv6监听会兼容IPv4,但少数环境下可能存在连接异常。

解决方法:

  • 启动websocketd时添加--address=0.0.0.0参数,强制服务监听IPv4的所有地址:
./websocketd \
    --address=0.0.0.0 \
    --port=8080 \
    --ssl \
    --sslcert="/etc/ssl/certs/ssl-cert-snakeoil.pem" \
    --sslkey="/etc/ssl/private/ssl-cert-snakeoil.key" \
    --staticdir=. \
    ./count.sh
  • 或在浏览器中用IPv6本地地址wss://[::1]:8080/尝试连接

4. 查看浏览器控制台的详细错误

打开Edge开发者工具(F12),查看控制台和网络标签下的详细报错信息,比如证书验证失败、连接超时等,能帮你快速定位核心问题。


内容的提问来源于stack exchange,提问作者Gill-Bates

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 13:35:30