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

时间:2015-09-04 14:15:27

标签: c# macos ssl mono

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

没有什么比这更难的了...感谢WebSocket4Net在C#上编写了PC端,它完美无缺。

但问题是......:我的应用程序也必须在Mac上使用相同的代码。我明显使用Mono,而WebSocket4Net lib也可以使用。不幸的是,每当我尝试打开套接字时,我都会看到一个很好的“view.getViewTreeObserver().addOnGlobalLayoutListener( new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { // Layout has happened here. // Don't forget to remove your listener when you are done with it. view.getViewTreeObserver().removeOnGlobalLayoutListener(this); } }); ”,然后是“RemoteCertificateNotAvailable”。

以下是我尝试过的,遵循网站上的一些建议:

Invalid certificate received from server

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

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

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

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

1 个答案:

答案 0 :(得分:1)

好吧,WebSocket4Net lib的创建者实际上已经在8月份做了修复。 System.Net.ServicePointManager.ServerCertificateValidationCallback现在可以正常工作。