У меня довольно простой вопрос! Я хочу загрузить сервер WS: // через HTTPS-соединение. Есть ли способ принудительно использовать WS поверх WSS без ввода данных пользователем?
Вы можете использовать сервер 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;
}
}
После настройки вы подключаетесь к этому серверу, который обертывает ваше веб-соединение в сертификат и пересылает его.