Android配置上的Openfire和smack

时间:2018-12-25 04:21:53

标签: android xmpp openfire smack

我在centos上安装了Openfire 4.2.3。我遵循了安装指南,但是没有在Openfire中导入任何证书。我在Android中使用以下代码通过有效的TLS连接到Openfire,

 XMPPTCPConnectionConfiguration.Builder builder = XMPPTCPConnectionConfiguration.builder();

    builder.setXmppDomain(mServiceName);
    builder.setDebuggerEnabled(true);
    builder.setPort(5222);
    builder.setSendPresence(true);
    builder.setHostAddress(InetAddress.getByName(ChatHelper.XMPP_SERVER_HOST));
    builder.setSecurityMode(ConnectionConfiguration.SecurityMode.required);
    builder.setCompressionEnabled(true);




    if (Build.VERSION.SDK_INT >= 14) {
        builder.setKeystoreType("AndroidCAStore");
        builder.setKeystorePath(null);
    } else {
        builder.setKeystoreType("BKS");
        String str = System.getProperty("javax.net.ssl.trustStore");
        if (str == null) {
            str = System.getProperty("java.home") + File.separator + "etc" + File.separator + "security"
                    + File.separator + "cacerts.bks";
        }
        builder.setKeystorePath(str);
    }

    try {
        SSLContext ssl = SSLContext.getInstance("TLS");
        ssl.init(null, new TrustManager[]{new TLSUtils.AcceptAllTrustManager()}, null);
        ssl.getServerSessionContext().setSessionTimeout(10 * 1000);
        builder.setCustomSSLContext(ssl);
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    } catch (KeyManagementException e) {
        e.printStackTrace();
    }



    return builder.build();

现在,我已经为导入到openfire密钥库的服务器域使用了自签名SSL服务器证书。 日志显示Openfire运行在9091和9090上。我可以使用9090来访问管理控制台,但不能在9091上使用。我该如何解决? 其次,如何配置smack通过TLS连接到openfire。我是否使用上传到openfire的相同密钥库?

0 个答案:

没有答案