Hallo zusammen,
ich entwickle auf einem Android-Smartphone in der Version 1.5.
Beim Verbindungsaufbau mit einem HTTPS-Server auf Port 4443 bekomme ich unten dargestellte Exception.
Hier der Code für den Verbindungsaufbau:
[JAVA]
SSLContext ctx = SSLContext.getInstance("TLS");
ctx.init(keyManagers, trustManagers, null);
HttpsURLConnection.setDefaultSSLSocketFactory(ctx.getSocketFactory());
URL url = new URL("https://test.einserver.de:4443");
con = (HttpsURLConnection) url.openConnection();
con.connect();
InputStream ins = con.getInputStream();
InputStreamReader isr = new InputStreamReader(ins);
BufferedReader bin = new BufferedReader(isr);
String inputLine;
while ((inputLine = bin.readLine()) != null) {
Log.i("Out:", inputLine);
}
bin.close();
[/JAVA]
Der Trustmanager erlaubt dabei sämtliche Zertifikate.
Was mich wundert ist, dass ich auf andere HTTPS-Server ohne Probleme zugreifen kann. Nur bei dem einen Server wird diese Exception geworfen.
Auch funktioniert der Verbindungsaufbau in einer normalen Java-Anwendung (Sun-Bibliotheken) ohne Probleme. Sun macht hier etwas grundsätzlich anders als Apache Harmony in Android.
ZitatAlles anzeigenW/System.err( 1436): javax.net.ssl.SSLPeerUnverifiedException: org.apache.harmony.security.asn1.ASN1Exception: ASN.1 UTCTime: wrong format for DER, identifier at [182]
W/System.err( 1436): at org.apache.harmony.xnet.provider.jsse.OpenSSLSessionImpl.getPeerCertificateChain(OpenSSLSessionImpl.java:251)
W/System.err( 1436): at org.apache.harmony.xnet.provider.jsse.OpenSSLSessionImpl.getPeerCertificates(OpenSSLSessionImpl.java:270)
W/System.err( 1436): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:346)
W/System.err( 1436): at org.apache.harmony.luni.internal.net.http://www.protocol.http.HttpConnect...ction.java:173)
W/System.err( 1436): at org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnection$HttpsEngine.connect(HttpsURLConnection.java:408)
W/System.err( 1436): at org.apache.harmony.luni.internal.net.http://www.protocol.https.HttpsURLCo...ction.java:151)
W/System.err( 1436): at app.flea.main.dcc.DCCService.connectToDCC(DCCService.java:284)
W/System.err( 1436): at app.flea.main.dcc.DCCService.connectDCC(DCCService.java:88)
W/System.err( 1436): at app.flea.main.dcc.DCCService.onStart(DCCService.java:65)
W/System.err( 1436): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2557)
W/System.err( 1436): at android.app.ActivityThread.access$3100(ActivityThread.java:112)
W/System.err( 1436): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1753)
W/System.err( 1436): at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err( 1436): at android.os.Looper.loop(Looper.java:123)
W/System.err( 1436): at android.app.ActivityThread.main(ActivityThread.java:3948)
W/System.err( 1436): at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err( 1436): at java.lang.reflect.Method.invoke(Method.java:521)
W/System.err( 1436): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
W/System.err( 1436): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
W/System.err( 1436): at dalvik.system.NativeStart.main(Native Method)
Hat von euch jemand eine Idee, wo das Problem liegen kann?
Eine Google-Suche über die geworfene Exception bringt nur 2 Ergebnisse, davon kein wirklich hilfreiches.
Wenn ich auf den Server über den Android-Browser zugreife, kann ebenfalls keine Verbindung aufgebaut werden.
Über eine normale DSL-Verbindung via Workstation ist ein Zugriff auf den HTTPS-Server möglich.
Was macht Android beim Verbindungsaufbau auf einen HTTPS-Server anders als eine normale Workstation?
Vielen Dank für eure Hilfe!
Viele Grüße
Android
PS: Dieser Eintrag wurde ähnlich gepostet unter http://www.java-forum.org/netz…r-android-smartphone.html
Dort wurde ich jedoch auf ein Android-Board verwiesen.