Использование ws: // при https: // (смешанный контент)

У меня есть страница html5 с

var connection = new WebSocket('ws://foo.bar:8888');

Но я получаю ошибку

Смешанный контент: страница по адресу 'https://foo.bar/' была загружена по HTTPS, но попытка подключения к небезопасной конечной точке WebSocket 'ws: //foo.bar: 8888 /'. Этот запрос заблокирован; эта конечная точка должна быть доступна через WSS.

Я понимаю это, но я не могу обслуживать Secure Websocket. Есть ли способ заставить эту работу работать, кроме запуска chrome с --allow-running-insecure-content или чего-то подобного, когда пользователь должен что-то делать?

Спасибо!


person CodingKiwi    schedule 03.05.2017    source источник
comment
Нет, ошибка говорит вам, что именно вы должны делать. Если вы обслуживаете страницу как https, вам нужно обслуживать сокет как wss. Как и в случае с CORS, настоящего обходного пути нет. Что мешает вам обслуживать безопасный веб-узел?   -  person Brennan    schedule 03.05.2017
comment
Особенно учитывая, что WebSocket использует HTTP для подтверждения соединения, поэтому, если вы можете обслуживать HTML через HTTPS, вы должны иметь возможность обслуживать WebSocket через WSS, поскольку он будет использовать HTTPS для подтверждения.   -  person Remy Lebeau    schedule 04.05.2017
comment
@RemyLebeau, не обязательно. Примером использования может быть загрузка веб-приложения по https. Приложение, в свою очередь, пытается подключиться к предварительно установленному серверу веб-сокетов, работающему на клиентском компьютере. Вы должны заставить пользователя сертифицировать машину, что нежелательно.   -  person scopchanov    schedule 29.05.2021


Ответы (1)


Итак, несколько месяцев спустя я могу сказать: если вы можете обслуживать страницу через https, где-то на вашем сервере есть файлы сертификатов и цепочек, используйте их для обслуживания wss.

person CodingKiwi    schedule 06.12.2017
comment
Что мы можем сделать, если я не могу использовать wss (это какая-то другая сборка платформы и у меня нет возможности перейти на wss) какой-либо альтернативой? - person Nikola Lukic; 14.03.2021
comment
Вы предполагаете, что сервер приложений и сервер websocket работают на одних и тех же машинах. Это не всегда так. - person scopchanov; 29.05.2021