JavaScript WebSocket. Можно ли заставить работать(хотя бы в Firefox и Chrome) WebSocket с HTTPS странцы на HTTP?

Сайт на HTTPS но с него нужно выполнить запрос на HTTP. Можно ли это как то задекларировать в браузере чтобы сработало(хотя бы для Firefox и Chrome)? То есть если wss прописываю в New Websocket в качестве протокола, то всё нормально если ws, то выполнение скрипта после этой строчки обрывается.

И соответственно если загрузить страницу сайта по HTTP то и с ws работает.


Ответы (1 шт):

Автор решения: CalmNad

В современных браузерах запрещено использование ws со страницы https, т.к. это нарушение безопасности. На сколько знаю, настройками страницы этот вопрос не решается. Обойти можно реализовав прокси wss <-> ws на стороне сервера. Например для nginx что-то вроде:

server {
  listen 443 ssl;
  ssl_certificate /etc/ssl/certs/cert.pem;
  ssl_certificate_key /etc/ssl/private/cert.key;

  location /3rdpartyproxy {
    proxy_pass http://3rdparty_url_or_ip;
    proxy_http_version 1.1;
    proxy_set_header Upgrade websocket;
    proxy_set_header Connection upgrade;
  }
}
→ Ссылка