【问题标题】:XMPP - Openfire SSL Encryption - Where to get started?XMPP - Openfire SSL 加密 - 从哪里开始?
【发布时间】:2011-09-02 22:29:42
【问题描述】:

我正在尝试在两个通过 Openfire 服务器交换 XMPP 数据的 C# 桌面客户端之间实现 xmpp 聊天/协作。问题是我必须通过 HTTPS 保护这些客户端和服务器之间的通信是否有特定的库或为实现这一目标而最好使用的策略。老实说,我什至很难找到从这里开始的地方。

编辑* 真的只需要通过 SSL 或其他适当形式的加密来保护通信,而不是使用 HTTPS 协议进行通信。

这里真正的任务是尝试使用 SSL 将我的客户端连接到 Openfire。虽然网络上到处都有论坛帖子,特别是在 Ignite Realtime 的网站上,但我还没有找到关于如何正确配置 openfire 服务器和客户端以保护此连接的明确解释。

【问题讨论】:

  • 对不起,需要根据大脑的回答来澄清。我并没有尝试将 XMPP 用作每个连接,因为据我了解,这不是 XMPP 的设计目的。我正在通过需要通过 HTTPS 连接的 Openfire XMPP 服务器进行连接
  • 您真的需要 HTTPS(和端口 443)还是只是在寻找加密?稍后见此链接:community.igniterealtime.org/thread/32026
  • 是的,实际上,SSL 加密确实是我比 HTTPS 更需要的。

标签: c# ssl xmpp openfire


【解决方案1】:

您应该查看Jinglelibjingle。我没有使用过这些,但我知道您需要使用 Jingle 进行点对点连接(XMPP 最常使用服务器进行聊天)。 libjingle 库是 C++,但可以使用 P/Invoke 从 C# 代码调用。

根据您对 Openfire 的评论,您应该查看 http://xmpp.org/xmpp-software/libraries/ 的 C#/.NET 库列表,以及 http://www.ag-software.de/agsxmpp-sdk/ 的热门库列表。这些是符合标准的库,其中包括显示如何连接到任何 XMPP 服务器的示例。除非您想使用 XMPP 服务器可用的特殊扩展,否则您应该能够开始使用这些。如果您仍在苦苦挣扎,请查看 O'Reilly 在 XMPPJabber 上的书籍(一位同事写的)

您是否考虑过为此使用 WCF,或者您是否仅限于使用 XMPP?有severalchatexamples可用。

【讨论】:

    【解决方案2】:

    这是来自Jabber-Net 的相关code,它使用system.net.security.SslStream

    m_stream = m_sslStream = new SslStream(m_stream, 
                                           false,
                                           ValidateServerCertificate, 
                                           ChooseClientCertificate);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-10
      • 2012-10-22
      • 2012-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      相关资源
      最近更新 更多