iOS9 erhält Fehler "ein SSL-Fehler ist aufgetreten und eine sichere Verbindung zum Server kann nicht hergestellt werden"
Seit ich ein Upgrade meines bestehenden Projekts mit iOS 9, ich erhalte die Fehlermeldung :
Ein SSL-Fehler aufgetreten, und eine sichere Verbindung zum server kann nicht hergestellt werden.
InformationsquelleAutor der Frage Nanda | 2015-09-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für die iOS9, hat Apple eine Radikale Entscheidung, die mit iOS 9, deaktivieren Sie alle ungesicherten HTTP-traffic von iOS-apps, als Teil von App-Transport-Security (ATS).
Einfach deaktivieren ATS, können Sie diese Schritte durch öffnen Sie Info.plistund fügen Sie die folgenden Zeilen:
InformationsquelleAutor der Antwort Tony Tran
Obwohl ermöglichen beliebige Lasten (
NSAllowsArbitraryLoads = true
) ist ein guter workaround, sollte man nicht komplett deaktivieren, ATS, sondern aktivieren die HTTP-Verbindung, die Sie zulassen möchten:InformationsquelleAutor der Antwort Stéphane Bruckert
iOS 9 Kräfte-verbindungen, die HTTPS verwenden, um TLS 1.2 zu vermeiden, die letzten Schwachstellen. In iOS 8 auch unverschlüsselte HTTP-verbindungen unterstützt wurden, so dass ältere Versionen von TLS nicht alle Probleme, entweder. Als workaround, können Sie dieses code-snippet zu Ihrer Info.plist:
*bezogen auf App-Transport-Security (ATS)
InformationsquelleAutor der Antwort TechSeeko
Wenn Sie nur für spezielle Domänen, die Sie versuchen können, und fügen Sie diese in Ihre Anwendung Info.plist:
InformationsquelleAutor der Antwort Nathan Noble
Scheint es, dass iOS 9.0.2 bricht Anforderungen an gültige HTTPS-Endpunkte. Mein Aktueller Verdacht ist, dass es die SHA-256-Zertifikate oder es schlägt fehl mit dieser Fehlermeldung.
Wiederzugeben, prüfen Sie Ihren UIWebView mit safari, und versuchen Sie, die Navigation zu einem beliebigen HTTPS-Endpunkt:
Nun versuchen, sich auf google (denn natürlich haben Sie eine SHA-256-cert):
Hinzufügen einer Ausnahme zu transport security (wie von @stéphane-bruckert Antwort oben) arbeitet, um dieses Problem zu beheben. Ausserdem gehe ich davon aus, dass komplett deaktivieren
NSAppTransportSecurity
würde auch funktionieren, allerdings habe ich gelesen, dass komplett deaktivieren kann gefährden Ihre app review.[EDIT] ich habe festgestellt, dass einfach das auflisten der domains ich bin anschließen der
NSExceptionDomains
dict behebt dieses problem, selbst wenn wirNSExceptionAllowsInsecureHTTPLoads
auf true gesetzt. :\InformationsquelleAutor der Antwort steve
Das problem ist das ssl-Zertifikat auf der server-Seite. Entweder etwas stört oder das Zertifikat nicht mit dem service. Zum Beispiel, wenn eine Website hat ein ssl-cert für http://www.mydomain.com während der Dienst läuft auf myservice.mydomain.com. Das ist eine andere Maschine.
InformationsquelleAutor der Antwort Helge Becker
Bekomme ich die gleiche Fehlermeldung, wenn ich geben Sie meine HTTPS-URL als : https://www.mywebsite.com . Aber es funktioniert, wenn ich es angeben ohne die drei W ' s : https://mywebsite.com .
InformationsquelleAutor der Antwort Hashim Akhtar
Xcode Projekt -> goto info.plist, und Klicken Sie auf Schaltfläche + Fügen Sie dann (App-Transport-Security-Settings)zu Erweitern, die Erlauben, Beliebige Lasten stellen Sie JA ein. Dank
InformationsquelleAutor der Antwort Shanmugasundharam selvadurai
Mein Problem war
NSURLConnection
und das war deprecated in iOS9, also änderte ich alle APINSURLSession
und dass es mein problem.NSURLConnection deprecated in iOS9
InformationsquelleAutor der Antwort Akila Wasala