Соединение через веб-сокет не работает через SSL - PullRequest
1 голос
/ 30 апреля 2020

У меня есть Web Socket, который отлично работает в локальном хосте и производственной среде (https://www.example.com).

Однако, когда я внедряю тот же код в среду pp (https://pp.example.com) Я получаю рукопожатие WebSocket: неожиданный код ответа: 404

У меня есть AWS сертификат, сгенерированный менеджером сертификатов для домена example.com, с дополнительным именем домена www.example.com и pp.example.com

www.example.com и pp.example.com находятся на разных серверах, поэтому у них разные IP-адреса .

Когда я go до www.example.com и совершаю следующий вызов,

let ws = new WebSocket("wss://www.example.com/ws");

Работает отлично. Веб-сокет подключен.

Однако, когда я перейдите на pp.example.com и сделайте следующий вызов

let ws = new WebSocket("wss://pp.example.com/ws");

Я получаю сообщение об ошибке от Safari, Firefox и Chrome:

Соединение WebSocket с 'wss: //pp.example.com/ws 'не удалось: ошибка во время рукопожатия WebSocket: неожиданный код ответа: 404

Есть идеи?

Код точно такой же.

Они развернуты на aws beanstalk.

производственная среда использует глобальный ускоритель + балансировщик нагрузки приложения + EC2

pp, среда использует classi c балансировщик нагрузки + EC2

1 Ответ

1 голос
/ 30 апреля 2020

Проблема заключается в слушателе балансировки нагрузки. Я использовал HTTPS для пересылки трафика c, в то время как веб-сокет работает на уровне TCP, поэтому вместо него должен использоваться SSL TCP.

См. Прилагаемый снимок экрана ниже для балансировки нагрузки enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...