2015-09-04 1 views
0

Я пытаюсь создать своего рода менеджер Push, клиентская сторона, который будет слушать то, что сервер должен сказать.Сертификат WebSocket на Mono (Mac, C#)

Ничего сложного ... Я написал его на ПК, благодаря WebSocket4Net, на C#, и он отлично работает.

Но вот проблема ...: мое приложение также должно работать на Mac, используя тот же код. Я использую Mono, очевидно, и работает библиотека WebSocket4Net. К сожалению, каждый раз, когда я пытаюсь открыть сокет, у меня есть хороший «RemoteCertificateNotAvailable», а затем «Invalid certificate received from server».

Вот что я пытался, следуя некоторым советам из Интернета:

webSocket.AllowUntrustedCertificate = true; 
System.Net.ServicePointManager.ServerCertificateValidationCallback = callbackValidation; 

код является основным и выглядит так, как на веб-сайте Lib: https://websocket4net.codeplex.com

Я DON» я знаю, почему эти решения не работают. Другие сообщения говорят, что это должно работать, и я понятия не имею, почему этого не происходит.

МОЖНО работать, добавив доверенные сертификаты в моно (mozroots --import --sync) или с помощью certmgr или что-то в этом роде. Но я не хочу этого решения, так как он должен работать на любом другом компьютере, кроме моего, ничего не устанавливая. Я могу принять запуск некоторой команды в моем приложении, которая установит некоторые сертификаты ... Предположим, меня интересуют эти решения. Но я предпочел бы найти решение, подразумевающее некоторые строки кода C#.

Итак ... Кто-нибудь есть идея о том, как обойти эту проблему?

ответ

1

Хорошо, что создатель библиотеки WebSocket4Net сделал исправление в августе для этого на самом деле. System.Net.ServicePointManager.ServerCertificateValidationCallback работает сейчас.

Смежные вопросы