Websocket HTTPS для HTTP понижения - PullRequest
0 голосов
/ 26 октября 2018

У меня довольно простой вопрос!Я хочу загрузить сервер WS: // через соединение HTTPS.Есть ли способ, которым я могу форсировать WS через WSS без ввода пользователя?

1 Ответ

0 голосов
/ 26 октября 2018

Вы можете использовать сервер nginx для его прокси.

Это будет означать, что вы подключаетесь к серверу nginx вместо конечного пункта назначения.

Сначала вам нужно настроить LetsEncrypt (или какой-либо другой сертификат).

Технически вы можете создать свой собственный сертификат, но если вы сделаете это, браузер не будет доверять этому соединению, которое вы можете обойти, посетив этот сайт напрямую и приняв его перед загрузкой другого сайта.Это боль, хотя.Доверьтесь мне.LetsEncrypt работает очень хорошо, как только вы его настроите.Но вам, возможно, придется сделать это по-другому, если у вас нет доменного имени.

Правило nginx, подобное этому, было бы хорошей отправной точкой;

server {
  listen 443 ssl;
  server_name  _;

  location / {
    auth_basic            "Restricted";
    proxy_pass http://your.destination.com;  # Note the http rather than ws.

    # WebSocket support
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_read_timeout 86400;

    # SSL
    ssl_certificate /etc/nginx/ssl/yoursite.net.cert;
    ssl_certificate_key /etc/nginx/ssl/yoursite.net.key;
    ssl_trusted_certificate /etc/nginx/ssl/yoursite.net.fullchain;
  }
}

Как только у вас будет этот наборвверх, вы подключаетесь к этому серверу, который упаковывает ваше соединение через веб-сокет в сертификат и пересылает его.

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