abgebrochen Ich versuche, meine Openfire 4.1.3 Server mit Smack 4.2, die aktuelle Konfiguration zu verbinden, funktioniert ok:Kann nicht TLS-Verbindung zu Openfire 4.1.3 Server mit Smack 4.2 auf Android etablieren: SSLProtocolException: SSL-Handshake
XMPPTCPConnectionConfiguration.Builder config = XMPPTCPConnectionConfiguration.builder();
config.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
config.setXmppDomain(serviceName);
config.setHost(context.getString(R.string.server));
config.setHostnameVerifier(verifier);
config.setHostAddress(addr);
config.setResource("Android");
config.setPort(Integer.parseInt(context.getString(R.string.server_port)));
config.setDebuggerEnabled(true);
XMPPTCPConnection.setUseStreamManagementResumptionDefault(true);
XMPPTCPConnection.setUseStreamManagementDefault(true);
connection = new XMPPTCPConnection(config.build());
Wenn ich versuche, mit SecurityMode.required
Verbindung herzustellen, kann ich keine Verbindung herstellen. Ich habe gelesen, dass ich CA auf dem Gerät eingestellt habe, aber ich weiß nicht, was ich tun soll. Irgendeine Hilfe?
EDIT: Dies sind die neuen Linien für den Versuch hinzugefügt, um eine Verbindung mit SecurityMode.required
config.setSecurityMode(ConnectionConfiguration.SecurityMode.required);
config.setCompressionEnabled(false);
SSLContext sslContext = null;
try {
sslContext = createSSLContext(context);
} catch (KeyStoreException | NoSuchAlgorithmException
| KeyManagementException | IOException | CertificateException e) {
e.printStackTrace();
}
config.setCustomSSLContext(sslContext);
config.setSocketFactory(sslContext.getSocketFactory());
Es erzeugt diesen Fehler-Stack:
W/System.err: javax.net.ssl.SSLHandshakeException: Handshake failed
W/System.err: at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:429)
W/System.err: at com.android.org.conscrypt.OpenSSLSocketImpl.waitForHandshake(OpenSSLSocketImpl.java:682)
W/System.err: at com.android.org.conscrypt.OpenSSLSocketImpl.getInputStream(OpenSSLSocketImpl.java:644)
W/System.err: at org.jivesoftware.smack.tcp.XMPPTCPConnection.initReaderAndWriter(XMPPTCPConnection.java:656)
W/System.err: at org.jivesoftware.smack.tcp.XMPPTCPConnection.initConnection(XMPPTCPConnection.java:633)
W/System.err: at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectInternal(XMPPTCPConnection.java:891)
W/System.err: at org.jivesoftware.smack.AbstractXMPPConnection.connect(AbstractXMPPConnection.java:377)
W/System.err: at it.chiaia.portaleragazze.chat.xmpp.XmppServer$2.doInBackground(XmppServer.java:176)
W/System.err: at it.chiaia.portaleragazze.chat.xmpp.XmppServer$2.doInBackground(XmppServer.java:169)
W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:305)
W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
W/System.err: at java.lang.Thread.run(Thread.java:761)
W/System.err: Caused by: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0xb38b1400: Failure in SSL library, usually a protocol error
W/System.err: error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER (external/boringssl/src/ssl/tls_record.c:192 0xa769d1aa:0x00000000)
W/System.err: at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method)
W/System.err: at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:357)
W/System.err: ... 14 more
Sie müssen weitere Details angeben. "Ich kann keine Verbindung herstellen" enthält nicht viele Informationen. – Flow
Ja, es tut mir leid. Nach dieser [Anleitung] (http://smackssl.blogspot.it/2015/10/ssl-implementation-in-android-for-smack.html) habe ich die Keystore-Datei erstellt, aber beim Versuch, eine Verbindung herzustellen, bekomme ich ** IOException: Handshake fehlgeschlagen ** – TheEnigmist
Immer die vollständige Ausnahmebedingung ** und ** stacktrace anzeigen. – Flow