2015-02-26 3 views
5

Ich bin vor einem asmack SSL-Verbindung Problem auf Android 5.0 und höher. Ich denke, es hängt mit der Sicherheit zusammen.Asmack Login Problem auf Android 5.0 und höher

ich gelöst es durch folgende Sperren vor dem Anschließen:

config.setSASLAuthenticationEnabled(false); 
config.setSecurityMode(SecurityMode.disabled); 

Aber ich will die Sicherheit aktiviert. Wie kann man es beheben, ohne setSecurityMode zu deaktivieren?

ich die Änderungen 5,0 http://developer.android.com/about/versions/android-5.0-changes.html#ssl

sah aber die Lösung nicht finden

meine logcat ist

02-26 17:28:20.596: W/System.err(23043): -- caused by: javax.net.ssl.SSLHandshakeException: Handshake failed 
02-26 17:28:20.596: W/System.err(23043): javax.net.ssl.SSLHandshakeException: Handshake failed 
02-26 17:28:20.596: W/System.err(23043): at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:392) 
02-26 17:28:20.601: W/System.err(23043): at com.android.org.conscrypt.OpenSSLSocketImpl.waitForHandshake(OpenSSLSocketImpl.java:652) 
02-26 17:28:20.601: W/System.err(23043): at com.android.org.conscrypt.OpenSSLSocketImpl.getInputStream(OpenSSLSocketImpl.java:614) 
02-26 17:28:20.601: W/System.err(23043): Caused by: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x9fca9e00: Failure in SSL library, usually a protocol error 
02-26 17:28:20.601: W/System.err(23043): error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error (external/openssl/ssl/s23_clnt.c:765 0xaec30bf9:0x00000000) 
02-26 17:28:20.601: W/System.err(23043): at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method) 
02-26 17:28:20.601: W/System.err(23043): at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:320) 
+0

Könnten Sie die Fehlermeldung erhalten Sie umfassen gelöst werden, wenn die Sicherheit aktiviert ist und Sie erleben dieses Problem. – Tom

+0

Dank für das in sie suchen Ich habe hinzugefügt logcat –

Antwort

1

Das Problem

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { 
     config.setTruststoreType("AndroidCAStore"); 
     config.setTruststorePassword(null); 
     config.setTruststorePath(null); 
    } else { 
     config.setTruststoreType("BKS"); 
     String path = System.getProperty("javax.net.ssl.trustStore"); 
     if (path == null) 
      path = System.getProperty("java.home") + File.separator 
        + "etc" + File.separator + "security" 
        + File.separator + "cacerts.bks"; 
     config.setTruststorePath(path); 
    } 

Damit war ich Verwenden eines selbst signierten SSL-Zertifikats. Es sollte durch Zugabe von SSL-Zertifikat auf Openfire und deren Verwendung in der App

[email protected]

+0

Kann jeder Kumpel erklären, wie SSL-Zertifikat auf Openfire hinzufügen? –

Verwandte Themen