Назад | Перейти на главную страницу

Безопасное соединение через веб-сокет на ejabberd

Я использую ejabberd 17.12. Работает нормально.

С этой конфигурацией мне удается открывать небезопасные подключения к веб-сокетам из моего браузера, используя как консоль JS, так и клиент XMPP:

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"

Теперь соединения через веб-сокеты больше не работают, даже незащищенные. Когда я пытаюсь открыть один, я все еще вижу это в 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-консоли браузера я вижу:

Соединение WebSocket с 'ws: //domain.local: 5280 / ws /' не удалось: соединение закрыто до получения ответа рукопожатия

Опять же, моя установка отлично работает для незащищенных подключений к веб-сокетам, когда я удаляю следующие две строки из ejabberd.yml :

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

Путь к сертификату правильный, и server.pem по умолчанию, когда я установил ejabberd.

Я не очень уверен, как двигаться дальше. Любое предложение приветствуется.

Попробуйте с wss: //domain.local: 5280 / ws / соединение будет работать. Вы получили ошибку, потому что tls: правда в файле конфигурации ejabberd