Не удается подключиться к брокеру emqx mqtt через wss из клиента https - PullRequest
0 голосов
/ 08 марта 2020

У меня есть брокер emqx mqtt, работающий на EC2, и конфигурация ssl и wss выглядит следующим образом -

listener.ssl.external = 8883
listener.ssl.external.keyfile = /etc/emqx/certs/key.pem
listener.ssl.external.certfile = /etc/emqx/certs/cert.pem
listener.ssl.external.cacertfile = /etc/emqx/certs/cacert.pem

listener.ws.external = 8083

listener.wss.external = 8084
listener.wss.external.keyfile = /etc/emqx/certs/key.pem
listener.wss.external.certfile = /etc/emqx/certs/cert.pem
listener.wss.external.cacertfile = /etc/emqx/certs/cacert.pem
listener.wss.external.verify = verify_none
listener.wss.external.fail_if_no_peer_cert = false

Когда я пытаюсь подключиться к брокеру с помощью панели мониторинга emqx (размещенной на http) без ssl (ws : // IP: 8083 / mqtt), он работает нормально, но когда я использую панель инструментов emqx (размещенную на https) с ssl (wss: // IP: 8084 / mqtt), он не подключается. Как подключиться к брокеру через https на wss?

Редактировать: Я хочу одностороннюю аутентификацию. Я буду подключаться к брокеру из приложения React Web, а также через приложение NodeJS. Поэтому я не хочу предоставлять сертификат со стороны клиента. Сертификаты, которые я использую, являются теми, которые предоставляются при установке EMQX Кроме того, я использую клиентские сертификаты, предоставленные EMQx для https ssl. И если браузер открывает https без какого-либо предупреждения, он также должен иметь возможность подключиться к веб-сокету.

Ответы [ 2 ]

1 голос
/ 08 марта 2020

Соединения через веб-сокет не могут выдавать то же предупреждение о недоверенных сертификатах, которое вы получаете при посещении веб-страницы.

Это означает, что браузеру нельзя доверять соединению. Если вы хотите использовать самозаверяющие сертификаты, вам нужно импортировать их в доверенное хранилище браузеров, чтобы им явно доверяли.

Другой вариант - использовать что-то вроде LetsEncrypt, чтобы получить настоящий сертификат, который браузер будет уже верь.

0 голосов
/ 15 апреля 2020

Либо сертификат должен быть выдан Ca, чтобы браузер мог автоматически проверить его. Обратите внимание, что сертификат совпадает с доменом.

Или сертификат должен быть в браузере (самозаверяющий сертификат).

Или вы доверяете ошибке проверки.

Открыть в браузере:

https://localhost: 8084 / mqtt

Появится ошибка доверия. На этой странице ошибки нажмите кнопку доверия, а затем:

wss: // localhost: 8084 / mqtt

Все нормально.

...