带有 Smack 4.1.8 客户端库的 Apache Vysper - 如何处理 TLS 证书?

Posted

技术标签:

【中文标题】带有 Smack 4.1.8 客户端库的 Apache Vysper - 如何处理 TLS 证书?【英文标题】:Apache Vysper with Smack 4.1.8 client library - how to handle the TLS certificate? 【发布时间】:2016-08-05 07:45:05 【问题描述】:

我想使用 Smack 4.1.8 库连接到 Apache Vysper 服务器。但是如何处理 Vysper 自带的 bogus_mina_tls.crt 呢?在 Smack 3 中,您可以使用:

ConnectionConfiguration connectionConfiguration = new ConnectionConfiguration("localhost", 5222);
connectionConfiguration.setSecurityMode(ConnectionConfiguration.SecurityMode.required);
connectionConfiguration.setSASLAuthenticationEnabled(true);
connectionConfiguration.setKeystorePath("src/main/resources/bogus_mina_tls.cert");
connectionConfiguration.setTruststorePath("src/main/resources/bogus_mina_tls.cert");
connectionConfiguration.setTruststorePassword("boguspw");

但是如何在 Smack 4 API 中使用 XMPPTCPConnectionConfiguration.builder() 做到这一点?

非常感谢

【问题讨论】:

【参考方案1】:

使用 Smack 4,您需要自己为 Smack 构建 SSLContext 并使用 setCustomSslContext(SSLContext) 进行设置。如果您不提供自定义 SSLContext,那么 Smack 将使用运行时的默认值(即诉诸于使用 Java 的信任库验证证书)。

【讨论】:

我也需要证书吗?如何设置?你能给我一个教程或类似的东西吗……对不起,我对 ssl 很陌生;)

以上是关于带有 Smack 4.1.8 客户端库的 Apache Vysper - 如何处理 TLS 证书?的主要内容,如果未能解决你的问题,请参考以下文章

如何处理 XMPP XEP-0363:客户端使用 SMACK 库的 HTTP 文件上传功能?

使用 Openfire 服务器和 XMPP(SMACK)客户端的 Android 聊天应用程序 [关闭]

Android (23) - Smack (4.1.8) - XMPP - “SSL23_GET_SERVER_HELLO:unknown protocol”错误

带有 aSmack 库的 XMPP 出现错误?

使用 smack 库的 android 头像管理

Smack 库的受保护类中生成的异常