我有一个非常简单的问题! 我想在HTTPS连接上加载WS://服务器。我有什么办法可以在没有用户输入的情况下通过WSS强制WS?
答案 0 :(得分:0)
您可以使用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;
}
}
设置完成后,您将连接到该服务器,该服务器将Websocket连接包装在证书中并进行转发。