原理说明

其实 wss 认证https 认证没什么区别,只是需要单独添加两个格外的 header支持一下 ws 协议升级而已,所以直接copy 一个 https 模版进行简单的变更即可

链接简历过程

ws 建立连接过程

注意事项

nginx 配置 wss 协议配置文件如下

#以下属性中,以ssl开头的属性表示与证书配置有关。
server {
    #配置HTTPS的默认访问端口为443。
    #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
    #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
    listen 443 ssl;

    #填写证书绑定域名
    server_name xxxxxx.net;
   
    #填写证书文件名称
    ssl_certificate /opt/pki/xxxxxx.net.pem;
    #填写证书私钥文件名称  
    ssl_certificate_key /opt/pki/xxxxxx.net.key;

    ssl_session_timeout 5m;
    #表示使用加密套件的类型
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    #表示使用的TLS协议的类型,您需要自行评估是否配置TLSv1.1协议。
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

    ssl_prefer_server_ciphers on;
    access_log  logs/xxxxxx.net.access.log  main;
    	        
     location /ws {
        proxy_pass http://localhost:31697;
	    proxy_read_timeout              500;
	    proxy_set_header                Host    $http_host;
	    proxy_set_header                X-Real-IP          $remote_addr;
	    proxy_set_header                X-Forwarded-For $proxy_add_x_forwarded_for;
	    proxy_http_version 1.1;
    	
    	# ws 协议专用头
     	proxy_set_header                Upgrade $http_upgrade;
    	proxy_set_header                Connection "Upgrade";
    }
}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注