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 }        

 

posted @ 2023-03-07 10:11  jin_jun_wang  阅读(269)  评论(0)    收藏  举报