Mono上的WebSocket证书(Mac, c#)

本文关键字:Mac 上的 WebSocket 证书 Mono | 更新日期: 2023-09-27 18:11:08

我正在尝试创建某种推送管理器,客户端,它将听取服务器必须说的话。

没什么难的,所以…感谢WebSocket4Net,我已经在c#上编写了PC端,它运行得很好。

但问题是……我的应用程序也必须在Mac上工作,使用相同的代码。我显然使用Mono,并且WebSocket4Net库工作。不幸的是,每次我试图打开一个套接字,我有一个很好的"RemoteCertificateNotAvailable",后面跟着一个"Invalid certificate received from server"。

以下是我根据网上的一些建议所做的尝试:
webSocket.AllowUntrustedCertificate = true;
System.Net.ServicePointManager.ServerCertificateValidationCallback = callbackValidation;

代码是基本的,看起来像lib网站上的代码:https://websocket4net.codeplex.com

我不知道为什么这些解决方案不起作用。其他帖子说这应该可以工作,我不知道为什么这里没有。

它可以通过手动添加受信任的证书到Mono (mozroots——import——sync),或者使用certmgr,或者类似的东西来工作。但我不想要这个解决方案,因为它需要在任何其他计算机上工作,而不需要安装任何东西。我可以接受在我的应用程序中运行一些命令来安装一些证书…假设我对这些解感兴趣。但我宁愿找到一个包含几行c#代码的解决方案。

所以…有人知道如何绕过这个问题吗?

Mono上的WebSocket证书(Mac, c#)

WebSocket4Net库的创建者实际上在8月份对此进行了修复。System.Net.ServicePointManager.ServerCertificateValidationCallback现在可以工作了