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

标签 c# macos ssl mono

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

没什么难的...我已经在 PC 端编写了它,感谢 WebSocket4Net,在 C# 上,它运行完美。

但问题是……:我的应用程序也必须在 Mac 上运行,使用相同的代码。我显然使用 Mono,并且 WebSocket4Net 库有效。不幸的是,每次我尝试打开一个套接字时,我都会得到一个很好的“RemoteCertificateNotAvailable”,然后是一个“从服务器收到的无效证书”。

这是我根据网上的一些建议尝试过的:

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

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

我不知道为什么这些解决方案不起作用。其他帖子说这应该有效,但我不知道为什么它在这里不起作用。

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

那么...有没有人知道如何绕过这个问题?

最佳答案

好吧,WebSocket4Net 库的创建者实际上在 8 月为此做了修复。 System.Net.ServicePointManager.ServerCertificateValidationCallback 现在有效。

关于c# - Mono 上的 WebSocket 证书(Mac,C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32400276/

相关文章:

c# - 有没有办法在可移植类库中创建套接字?

c# - 将 wp8 升级到 wp8.1 silverlight,无法启动调试器

c# - Encoding.utf8 将逗号转换为 C# 中的某些特殊字符

swift - NSURLConnection 忽略 SSL 证书?

c# - 如何在 .NET SslStream 中为客户端身份验证指定接受的证书

c# - 用户控制不透明度随可见性淡出

python - pip install lxml 在 clang 上提示

macos - CustomView 在我的项目中看起来很奇怪,但在 Playground 上很好

swift - 无法在 mac 屏幕保护程序发布版本上加载图像(它适用于 Xcode 调试版本)

java - 发送网格。 SMTP-over-SSL,或 SMTP+STARTTLS