Я пытаюсь подключиться с Android к серверу Apache Vysper XMPP на локальном хосте. Я использую структуру Smack для выполнения операций XMPP:
AbstractXMPPConnection connection = new XMPPTCPConnection("bigdestroyer", "", ip);
try {
connection.setPacketReplyTimeout(10000);
connection.connect();
} catch (SmackException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (XMPPException e) {
e.printStackTrace();
}
Но я получаю такую ошибку:
javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: якорь доверия для пути сертификации не найден.
Я предполагаю, что это связано с сертификатом SSL, но я не знаю, что мне делать. Вы можете мне помочь?
Я попытался поместить файл cert
(такой же, как у сервера) в папку assets
и создать соединение таким образом:
XMPPTCPConnectionConfiguration connectionConfiguration = configuration.setConnectTimeout(10000)
.setUsernameAndPassword("admin", "admin")
.setHost(ip)
.setServiceName(ip)
.setKeystorePath("file:///android_asset/bogus_mina_tls.cert")
.build();
XMPPTCPConnection connection = new XMPPTCPConnection(connectionConfiguration);
Но все равно не работает. Любое предложение?