WebSocket创建基于pfx格式证书的wss服务
1、问题
最近使用SuperWebSocket 搭建.net的Websocket服务器,使用证书进行通信加密时,遇到google浏览器提示:ERR_SSL_VERSION_OR_CIPHER_MISMATCH,找了好久才发现是SuperWebSocket 的TLS协议版本比较低,google、火狐、Edge已经不支持低版本的TLS协议。
2、解决思路
最新版本的websocket框架已经挪至SuperSocket.WebSocket,用SuperSocket.WebSocket替换 SuperWebSocket,并按照以下进行配置即可实现websocket通信加密
1 //websocket的配置对象 2 SuperSocket.SocketBase.Config.ServerConfig Svrconfig = new SuperSocket.SocketBase.Config.ServerConfig(); 3 4 Svrconfig.Port = port;//设置端口号 5 Svrconfig.Ip = GlobalConst.ServerIP;//设置ip 6 7 //进行加密通信设置 8 Svrconfig.Security = "Tls12";//将tls设置为1.2版本 9 Svrconfig.Certificate = new CertificateConfig() 10 { 11 FilePath = "D:\WebSocketCertificate\xxx.pfx",//设置读取证书的路径 12 Password = "123456"//证书的密码,实际密码看申请证书给的密码 13 }; 14 15 //启动服务 16 WebSocketServer server = new WebSocketServer(); 17 if (server.Setup(Svrconfig)) 18 { 19 if(server.Start()) 20 { 21 //客户端连接上服务器,每个连接都会触发一次 22 server.NewSessionConnected += (session) => 23 { 24 }; 25 //连接断开,每个连接断开都会触发一次,客户端或服务器主动断开都会触发 26 server.SessionClosed += (session, reason) => 27 { 28 }; 29 //服务器收到客户端的消息 30 server.NewMessageReceived += (session, message) => 31 { 32 } 33 } 34 }