2013-04-02 7 views
16

Ich mache eine App, um sich über HTTPS an einer aspx-Website anzumelden, indem ich die Anmeldedaten in einer Post-Methode übergebe. Wenn ich die Antwort unter Verwendung von Charles Proxy überprüfe, kann ich einen SSL Handshake Fehler von seal.verisign.com sehen, ich werde dann zurück zur Anmeldeseite gebracht. Ich bin mir nicht sicher, was ich tun muss, um dieses Problem zu lösen.iOS-App SSL-Handshake fehlgeschlagen

Ich teste das im iPhone Simulator.

Ich habe keinen Zugriff auf die Serverimplementierung.

Irgendwelche Ideen?

Vielen Dank!

Antwort

1

Es ist möglich, dass der Server kein gültiges Zertifikat für die von Ihnen verwendete URL besitzt. Hast du das überprüft?

Wenn Sie die URL mit einem Browser versuchen, erhalten Sie eine Warnung?

12

Vielleicht gibt das Testen auf einem tatsächlichen Gerät mehr Einblick?

Um das zu tun in Charles:

  1. Goto Proxy: Proxy-Einstellungen ...
  2. Registerkarte Proxies: Geben Sie "8888" im HTTP-Proxy-Port: Feld
  3. SSL Tab: sicherstellen, dass die "Enable SSL Proxying" ist auf

auf Ihrem dev Maschine:

  1. Gehe zu Systemeinstellungen: Netzwerk: Wifi: Erweitert: TCP/IP Registerkarte: Notieren Sie die IPV4-Adresse: (d. H. 10.0.1.101)

auf dem iDevice:

  1. Goto http://charlesproxy.com/charles.crt von Ihrem Gerät und downloaden Charles SSL-Zertifikat
  2. Okay, das Zertifikat als vertrauenswürdig (achten Sie darauf, sie zu deaktivieren oder zu entfernen, sobald du bist done)
  3. Springen der Einstellungen App: Wireless-LAN: wählen Sie die detaillierte Offenlegung Taste (runde blaue Taste mit dem weißen Pfeil) für Ihr Netzwerk
  4. unter HTTP-Proxy, wählen Sie „Manuell“
  5. Geben Sie in der Adress aus Schritt (dev Maschine 1) in das Feld Server und die Portnummer aus dem Schritt (charles 2.)

Endlich:

  1. Restart Charles
  2. Run Safari auf deinem iDevice zum Testen. Daraufhin sollte Charles aufgefordert werden, ein Dialogfeld zum Zulassen oder Ablehnen der SSL-Proxyfunktion anzuzeigen. Offensichtlich erlauben und du solltest gut gehen.

Mehr Infos Charles Website: http://www.charlesproxy.com/documentation/proxying/ssl-proxying/

Außerdem werden Sie eine Antwort auf die Verbindung erhalten: (NSURLConnection *) Verbindung didReceiveAuthenticationChallenge: (NSURLAuthenticationChallenge *) Herausforderung Methode?

+1

Der Schritt 1 von "On your iDevice" war etwas, das ich nicht kannte und das mir definitiv ein paar Stunden erspart hat. Vielen Dank. – dezinezync

0

Sie müssen das SSL-Zertifikat auf dem mobilen Gerät installieren.

Suchen Sie online nach der Installation des SSL-Zertifikats für Charles Proxy.

+1

Bitte beachten Sie, dass [offene Selbstwerbung hier nicht erlaubt ist] (https://stackoverflow.com/help/behavior). Ich schlage vor, dass Sie die Links zu Ihrem Blog aus Ihren Antworten heraus bearbeiten. Sie sind nur in Ihrer Profilseite erlaubt. –

3

Sie müssen ein SSL-Zertifikat installieren, um dieses Problem zu beheben.

Führen Sie die folgenden Schritte

  1. öffnen Safari Browser auf iOSSimulator

  2. Typ "www.charlesproxy.com/getssl" in Adressleiste

  3. Installieren Sie die SSL Zertifikat
  4. Restart Charles Proxy
+1

http: // chls.pro/ssl ist die Abkürzung URL – Vaiden

5

das Zertifikat noch nicht beim Bei der Installation, dann kann es aufgrund von SSL Pinning sein.

Von charlesproxy.com:

SSL Pinning Beachten Sie, dass einige Anwendungen SSL-Zertifikat Pinning implementieren, die bedeutet, dass sie speziell das Stammzertifikat validieren. Da die App selbst das Stammzertifikat überprüft, akzeptiert sie das Zertifikat von Charles nicht und schlägt die Verbindung fehl. Wenn Sie das SSL-Zertifikat von Charles root erfolgreich installiert haben und SSL-Websites mit SSL-Proxy in Safari durchsuchen können, aber eine App fehlschlägt, dann ist SSL-Pinning möglicherweise das Problem .

+0

Gibt es eine Möglichkeit, das SSL-Pinning-Problem mit Charles Proxy zu lösen? – tingason

57

Auf iOS> = 10,3, nach dem Charles Proxy Zertifikat zu installieren (per @ ashish-Vermas ausgezeichneter Antwort), müssen Sie auch Einstellungen es durch ermöglichen - über>->Allgemein - >Certificate Trust Einstellungen:

Enable SSL root certificate on iOS 10.3 and up

Voll Setup hier: http://www.devsbedevin.com/debugging-ios-ssl-traffic/

+4

Danke sooo viel !!! verschwendete viel Zeit mit diesem – schirrmacher

+2

Danke. verschwendete Stunden, weil ich diese Schritte nicht kannte –

+1

Danke! Sehr geschätzt. Super hilfreich. – petezurich

0

Entfernen Sie alle alten Benutzeranmeldeinformationen und installieren Sie das neue SSL-Zertifikat erneut.

Verwandte Themen