Использование клиентского сертификата с WebSocket4Net

Мой сервер работает с использованием SuperWebSocket со следующим кодом для сервера:

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();

1 ответ

Как вы указали в конфигурации сервера, ваш клиент должен пройти аутентификацию с помощью сертификата. Но я не вижу сертификат в вашем клиентском подключении.

На самом деле, я не вижу способа указать эти сертификаты. Я просмотрел исходники на github и обнаружил, что SuperWebSocket4Net построен на SuperSocket ClientEngine (от того же автора). В ClientEngine есть класс с именем SslStreamTcpSession. Здесь клиент SLL создается и используется для аутентификации, а здесь вы можете разместить свои сертификаты. Может быть, мы можем попросить автора добавить функцию: возможность установить сертификаты для аутентификации клиента.

Другие вопросы по тегам