我在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的相同密钥库?