Сбой соединения WebSocket в Chrome без SSL - PullRequest
0 голосов
/ 05 июня 2018

Я устанавливаю WebSocket между стандартной веб-страницей и сервером Tomcat v7.0.62.Соединение работает нормально с включенным / выключенным Tomcat SSL на Firefox, Edge и IE11.Однако в Chrome (v66.03) веб-сокет подключается только тогда, когда я включил SSL на сервере и подключился через https.В Chrome, когда я выключаю SSL на сервере и пытаюсь подключиться через http, выдается ошибка.

Вот ошибка, которую выдает Chrome при попытке подключиться через http с отключенным SSL на Tomcat ...

Error in connection establishment: net::ERR_PROXY_AUTH_REQUESTED_WITH_NO_CONNECTION

Вот мой код подключения WebSocket на клиенте ...

var wss = "wss://";
if (document.location.protocol === "http:") {
   wss = "ws://";
}
var wsURL = wss + document.location.host + "/status?sessionId=<%=session.getId()%>";

Это что-то специфичное для Chrome, для которого требуется специальный код для подключений через веб-сокеты не через https?

Ответы [ 3 ]

0 голосов
/ 14 июня 2018
Error in connection establishment: net::ERR_PROXY_AUTH_REQUESTED_WITH_NO_CONNECTION

Возможно, у вас есть посредник с аутентификацией в середине, между клиентами и службой.В зависимости от конфигурации прокси-сервера и клиентов он может пропускать SSL-соединения, но простой http будет фильтроваться.

0 голосов
/ 14 июня 2018

Это специфичное для Chrome поведение.Chrome не допускает небезопасных подключений websocket (ws) к localhost (только wss, поэтому вам следует установить сертификат TLS для локального сервера web / websocket).Но то же самое должно работать без каких-либо проблем в Firefox и других браузерах.

Пожалуйста, обратитесь к сообщению об ошибке Chrome на Chromium относительно этой проблемы.Эта конкретная проблема является преднамеренной, и они внесли это изменение, чтобы сделать Chrome более безопасным, предотвращая атаки на внутренние сетевые устройства и процессы, прослушивающие локальный хост.

https://bugs.chromium.org/p/chromium/issues/detail?id=378566

0 голосов
/ 11 июня 2018

Я не могу подтвердить вашу проблему.Вы можете попробовать Echo Test здесь: http://www.websocket.org/echo.html

Сайт поддерживает http и https, вы можете указать ws://echo.websocket.org и wss://echo.websocket.org.Я перепробовал все комбинации, и все они работали для меня.

Я предполагаю, что это проблема конфигурации вашего сервера или проблема с расширениями вашего браузера.

...