2015-05-01 129 views
2

我的服務器是使用SuperWebSocket與服務器下面的代碼運行:與使用客戶端證書WebSocket4Net

var server = new WebSocketServer(); 
var config = new ServerConfig(); 
config.Port = 4015; 
config.Security = "Tls"; 
config.Certificate = new CertificateConfig{ 
    FilePath = serverConfiguration.Certificate.Path, 
    ClientCertificateRequired = true 
}    
server.Setup(config); 
server.Start(); 

對於客戶端,我嘗試使用WebSocket4Net,我嘗試配置的證書,客戶端應該呈現沒有任何運氣,當前的客戶端代碼是:

var client = new WebSocket("wss://localhost:4015, "basic", WebSocketVersion.Rfc6455); 
client.Open(); 

回答

0

正如您在服務器配置中所述,您的客戶端需要使用證書進行身份驗證。但是我無法在客戶端連接中看到任何證書。

事實上,我看不到指定這些證書的方法。 我瀏覽了github上的源代碼,發現SuperWebSocket4Net是基於SuperSocket ClientEngine(來自同一作者)構建的。在ClientEngine中有一個名爲SslStreamTcpSession的類。這裏SLL客戶端被創建並用於認證,在這裏你可以放置你的證書。 也許我們可以要求the author添加一項功能:爲客戶端身份驗證設置證書的機會。

+0

我終於成功地在SuperWebSocket4Net中進行了一些代碼更改,如前所述,我現在可以成功地使用WSS(安全web套接字)。如果有人有興趣,我可以分享我的黑客。 – Ratman

+0

我很感興趣。請分享你的黑客。 - Kalyan – kalyanmysore