Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

HTTPS-Problem

Das Thema "HTTPS-Problem" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 27.09.2011, 10:11   #1 (permalink)
Fortgeschrittenes Mitglied

Modell: HTC Sensation

Registriert seit: 31.08.2011
Beiträge: 390
Abgegebene Danke: 25
Erhielt 59 Danke für 57 Beiträge
Frage HTTPS-Problem

Hallo,

ich muß eine HTTPS-Connection zu einem Server aufbauen und die Antwort verarbeiten. Dazu hab ich erst mal Google benutzt, um mir einige Code-Beispiele anzusehen.

Folgendes, sehr simpe Code-Beispiel, habe ich dann verwendet (die url ist natürlich hier ausgetauscht):
Code:
                URL url;
                try {
                    url = new URL("https://test.data.com");
                    HttpsURLConnection sslConnection = (HttpsURLConnection)url.openConnection();
                    System.out.println(sslConnection.getResponseMessage());
                    
                    String readLine;
                    BufferedReader buffReader = new BufferedReader (new InputStreamReader (sslConnection.getInputStream()));
                    
                    int counter = 0;
                    
                    //while (true) {
                    while (counter < 6) {
                        readLine = buffReader.readLine ();
                        if (readLine == null) {
                            sslConnection.disconnect();
                            return;
                        }
                        else {
                            counter++;
                            System.out.println(readLine);
                        }
                    }
                    sslConnection.disconnect();
                }
                catch (MalformedURLException e) {
                    e.printStackTrace();
                }
                catch (IOException ioe) {
                    ioe.printStackTrace();
                }
Ich habe nun das Problem, daß die Verbindung mal funktioniert und mal nicht. Anfangs sah es so aus, als würde die 1. 3. 5. usw. Verbindung klappen und die 2. 4. 6. usw. nicht. Habe dann
Code:
sslConnection.disconnect()
explizit eingebaut.
Danach hatte es zumindest den Anschein, als würde es klappen, da es 3 oder 4 mal in Folge geklappt hat. Danach kam aber wieder der Fehler:
Code:
javax.net.ssl.SSLException: Not trusted server certificate
.
.
Caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: TrustAnchor for CertPath not found.

.
.
Caused by: java.security.cert.CertPathValidatorException: TrustAnchor for CertPath not found.
Hat jemand eine Idee, warum es mal funktioniert und mal nicht? Für mich ist es schon wichtig, daß die Verbindung zuverlässig funktioniert und nicht nur per Zufall ...
Tom299 ist offline   Mit Zitat antworten
Alt 27.09.2011, 10:21   #2 (permalink)
Ehren-Mitglied
 
Benutzerbild von Kranki

Modell: Nexus One

Registriert seit: 19.07.2009
Beiträge: 4.329
Abgegebene Danke: 127
Erhielt 1.372 Danke für 871 Beiträge
Kranki eine Nachricht über ICQ schicken
Standard

Ich nehme an, der Server hat kein Zertifikat, dem Android vertraut. Versuch das mal:
http://stackoverflow.com/questions/2...-or-better-way
__________________
CyanogenMod 7 Nightly - AmonRa Recovery 2.0 - Nexus One
Kein Support via PN und E-Mail. Bitte das Forum nutzen.
"Es ist Mode geworden, die Freiheitsrechte des Bürgers in den Mittelpunkt zu stellen." - Siegfried Kauder
Kranki ist offline   Mit Zitat antworten
Alt 27.09.2011, 11:39   #3 (permalink)
Fortgeschrittenes Mitglied

Modell: HTC Sensation

Registriert seit: 31.08.2011
Beiträge: 390
Abgegebene Danke: 25
Erhielt 59 Danke für 57 Beiträge
Standard AW: HTTPS-Problem

Danke für die Links, aber die kannte ich schon ;-)

Leider gehts da fast immer nur um self-signed SSL certificates. Wir haben aber ein Zertifikat von Verisign. Ich kenn mich damit zwar nicht wirklich aus, aber ich nehme mal an, daß es dann nicht self-signed ist. Und ein KeyStore-File hab ich auch nicht und wüßte auch nicht, wo ich sowas finde ;-)

Witzig ist halt, daß mein Arbeitskollege (er hat damals die Anwendung für Windows Mobile gemacht, ich portiere jetzt auf Android) genau die gleichen Probleme hat(te), mal ging es, mal nicht. Er hat einfach mehrmals die Connection versucht bis es ging. Aber mir gefällt die Lösung nicht, da es dann zu sehr auf Zufall beruht.

Ich hab auch schon mal das TimeOut hochgesetzt, aber damit hat es auch nichts zu tun. Entweder kommt die Fehlermeldung sofort oder es funktioniert.

Ist es möglich, daß der WebServer nen Tick hat oder so?
Tom299 ist offline   Mit Zitat antworten
Alt 27.09.2011, 15:12   #4 (permalink)
Fortgeschrittenes Mitglied

Modell: HTC Sensation

Registriert seit: 31.08.2011
Beiträge: 390
Abgegebene Danke: 25
Erhielt 59 Danke für 57 Beiträge
Standard AW: HTTPS-Problem

Sieht so aus, als wäre dieser "Bug" nur bei Android < 2.3 vorhanden.

Ich entwickele soweit es geht meistens auf 1.6 oder 2.1, und da ist mir dieser Bug sowohl mit dem Test-Handy als auch mit dem AVD begegnet.

Jetzt hab ich spaßeshalber mal mein HTC Sensation mit der App getestet und siehe da, 20 mal in Folge eine Verbindung, nicht 1 Fehler. Hab dann mal ne AVD mit 2.3.1 erstellt und auch hier klappt die Verbindung ohne Fehler.

Kann das evtl. jemand bestätigen? ;-)
Tom299 ist offline   Mit Zitat antworten
Alt 06.01.2012, 18:49   #5 (permalink)
Junior Mitglied

Registriert seit: 28.09.2011
Beiträge: 39
Abgegebene Danke: 0
Erhielt 9 Danke für 6 Beiträge
Standard AW: HTTPS-Problem

ich kann das bestätigen definitiv ein Bug vor 2.3.

Habe jetzt auf mehreren Geräten und AVD‘s getestet und einige User haben sich bei mir wegen diesem Problem ebenfalls gemeldet.
Monty1979 ist offline   Mit Zitat antworten
Alt 06.01.2012, 19:21   #6 (permalink)
Junior Mitglied

Registriert seit: 28.09.2011
Beiträge: 39
Abgegebene Danke: 0
Erhielt 9 Danke für 6 Beiträge
Standard AW: HTTPS-Problem

und hier die Lösung
Code:
if ( android.os.Build.VERSION.SDK_INT < 9) {
System.setProperty("http.keepAlive", "false");
}
gefunden habe ich sie auf http://www.go-android.de/externe-news/androids-http-clients allerdings steht auf der Seite bis Froyo(8)
Monty1979 ist offline   Mit Zitat antworten
Folgender Benutzer bedankt sich bei Monty1979 für diesen Beitrag:
Tom299 (06.01.2012)
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
Problem mit https-Seite pep Sony Ericsson Xperia X10 Mini / Mini Pro 16 17.11.2010 17:06
https:// Problem mit sicheren Verbindungen da_geri Samsung Galaxy S (I9000) Forum 7 08.11.2010 23:24
https:// Domains c0rtez Motorola Milestone Forum 19 02.07.2010 20:51
https oder Javascript Problem? Katzenstreu Sonstige Apps & Widgets 3 07.11.2009 18:01




Du liest gerade: "HTTPS-Problem" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.