如何使用 TLS/SSL 连接 xmpp 服务器?

Posted

技术标签:

【中文标题】如何使用 TLS/SSL 连接 xmpp 服务器?【英文标题】:How to connect xmpp server using TSL/SSL? 【发布时间】:2017-10-29 06:05:23 【问题描述】:

我正在使用 smack 4.2.1 连接 xmpp 服务器,但是当我运行代码时,服务器会响应以下消息。 我真的知道是 tsl/ssl config 引起的错误。但我不知道如何解决。

            XMPPTCPConnectionConfiguration conf = XMPPTCPConnectionConfiguration.builder()
                 .setXmppDomain("404.city").setUsernameAndPassword("xx", "xxxx")
                 .setCompressionEnabled(false)
                 .setSecurityMode(ConnectionConfiguration.SecurityMode.required)                   
                 .build();
             XMPPTCPConnection connection = new XMPPTCPConnection(conf);
             connection.connect();

org.jivesoftware.smack.SmackException:javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求的有效证书路径目标 在 org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1060) 在 org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPConnection.java:982) 在 org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:998) 在 java.lang.Thread.run(Thread.java:745)

【问题讨论】:

【参考方案1】:

我自己修好了.... 我应该为配置设置一个 SSLContext

【讨论】:

您能分享一下您是如何设置 sslContext 的吗?

以上是关于如何使用 TLS/SSL 连接 xmpp 服务器?的主要内容,如果未能解决你的问题,请参考以下文章

ssl.SSLZeroReturnError: TLS/SSL 连接已关闭 (EOF) (_ssl.c:661)

C# - 使用 feck 的 TLS / SSL Websockets

TLS(SSL)

C++ Boost asio (OpenSSL) 获取活动连接的密码和 TLS/SSL 版本

如何以编程方式设置 JAX-WS 客户端的 SSLContext?

TLS,SSL,HTTPS with Python(转)