У меня установлен Openfire 4.2.3 на centos.Я следовал руководству по установке, но не импортировал никаких сертификатов в Openfire.Я использовал следующий код в Android для подключения к Openfire через работающий TLS:
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();
Теперь у меня есть самозаверяющий сертификат сервера SSL для моего домена сервера, который я импортировал в хранилище ключей openfire.Журналы говорят, что Openfire работает на 9091, 9090. Я могу использовать 9090 для доступа к консоли администратора, но не на 9091. Как я могу это исправить?во-вторых, как я могу настроить smack для подключения к openfire через TLS.Я использую то же хранилище ключей, которое загружено в openfire?