带有 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”错误