ws: // over https: // - смешанный контент

У меня проблема с приложением js - у меня есть веб-сайт через https, но мне нужно подключиться к внешнему устройству через ws - это ТОЛЬКО вариант, когда это устройство может подключаться и отвечать.

Я получаю ошибку

Mixed Content: 
The page at 'https://(...).html' was loaded over HTTPS, 
but attempted to connect to the insecure WebSocket endpoint 
'ws://192.168.(...).(...)/(...)'. 
This request has been blocked; 
this endpoint must be available over WSS.

Как я могу это пережить? Можно ли избежать этого с помощью какой-либо политики CSP? WS - это единственный вариант подключения, а WSS здесь не решение.


person Garbus Uchiha    schedule 26.11.2019    source источник
comment
Лучше всего, вероятно, настроить прокси-сервер, который может принимать соединения WSS и пересылать их на ваше устройство.   -  person deceze♦    schedule 26.11.2019
comment
Вам нужен ssl-сертификат на вашем сервере websocket и измените протокол http на wss://   -  person Nicolas    schedule 26.11.2019
comment
@Nicolas - я не могу - это внешнее устройство в локальной сети, которое я подключаю через JS API   -  person Garbus Uchiha    schedule 26.11.2019
comment
Что ж, попробуйте изменить свой протокол http на wss:// и проверьте, решает ли это проблему.   -  person Nicolas    schedule 26.11.2019
comment
@Nicolas The. Устройство. В. Вопрос. Делает. Нет. Принимать. WSS. Связи. Поэтому его изменение просто приведет к ошибке подключения.   -  person deceze♦    schedule 26.11.2019
comment
Вы должны иметь возможность использовать Content-Security-Policy connect-src ws://hostname.of.your.device/, чтобы разрешить подключение к веб-сокету с открытым текстом, при условии, что никакая другая connect-src политика не запрещает этот доступ. См. Подробности в w3.org/TR/CSP3.   -  person ottomeister    schedule 26.11.2019


Ответы (1)


Ваше соединение ws на странице HTTPS считается активным смешанным контентом и блокируется большинством браузеров, CSP не может это изменить. Поскольку @deceze предлагает прокси, принимающий WSS, - ваш лучший вариант. Переход на HTTP - еще один вариант, но не самый лучший.

person Halvor Sakshaug    schedule 29.11.2019