ejabberd 上的安全 Web 套接字连接

ejabberd 上的安全 Web 套接字连接

我正在运行 ejabberd 17.12。它运行良好。

通过此配置,我设法使用 JS 控制台和 XMPP 客户端从我的浏览器打开非安全的 Web 套接字连接:

port: 5280
ip: "::"
module: ejabberd_http
request_handlers:
  "/ws": ejabberd_http_ws
  "/bosh": mod_bosh
  "/api": mod_http_api
##  "/pub/archive": mod_http_fileserver
web_admin: true
## register: true
captcha: false

我需要有安全的网络套接字连接,因此我将其添加到上述配置中:

tls: true
certfile: "/opt/ejabberd/conf/server.pem"

现在 Web 套接字连接不再起作用,即使是不安全的连接也不起作用。当我尝试打开一个时,我仍然看到以下内容ejabberd.log

[信息] <0.4280.0>@ejabberd_listener:accept:302 (<0.4489.0>) 已接受连接 ::ffff:127.0.0.1:58410 -> ::ffff:127.0.1.1:5280

我什么也没得到error.log。在浏览器的 JS 控制台中,我看到:

与 'ws://domain.local:5280/ws/' 的 WebSocket 连接失败:连接在收到握手响应之前关闭

再次,当我从中删除以下两行时,我的设置对于不安全的 Web 套接字连接运行良好ejabberd.yml

tls: true
certfile: "/opt/ejabberd/conf/server.pem"

证书的路径是正确的,server.pem是我安装 ejabberd 时自带的默认路径。

我不太确定接下来该怎么做。欢迎提出任何建议。

答案1

尝试韋斯://domain.local:5280/ws/ 连接即可工作。您收到错误,因为tls: true在 ejabberd 配置文件中

相关内容