websocket连接wss踩坑日记
//var ws = new WebSocket("ws://192.168.0.142:2347");第一次
//var ws = new WebSocket("wss://192.168.0.142:2347");第二次出错
var ws = new WebSocket("wss://域名/tv/wss");//正常
网站部署ssl后,websocket连接的协议也要从ws变为wss(ws+ssl)
修改未wss,报错net::ERR_SSL_PROTOCOL_Error
因为IP肯定没得证书啊,只能陪着域名,需要修改
nginx配置文件nginx.conf
宝塔修改网站->设置->配置文件
server {
#SSL 访问端口号为 443
listen 443 ssl;
#填写绑定证书的域名
server_name xxx;
#证书文件名称
ssl_certificate xxx;
#私钥文件名称
ssl_certificate_key xxx;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
root C:/it/admin/blogBackstage;
index index.html index.htm;
}
#重点
location ~ ^/tv{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Nginx-Proxy true;
# proxy_pass http://192.168.0.252:2347;
proxy_pass http://localhost:2347;
}
error_page 404 ui-404.html;
}
正常访问域名(tv可以修改,目的是与框架路由区分开)
var ws = new WebSocket(“wss://域名/tv/wss”);