2016-07-20 7 views
4

erhalte ich die folgende Fehlermeldung (die jeder versuchen identisch ist)‚Ein SSL-Fehler aufgetreten ist und eine sichere Verbindung zum Server kann nicht hergestellt werden‘ mit geprüftes Zertifikat

2016-07-20 20:09 : 28,013 MeineAnw [1140: 374.263] CFNetwork SSLHandshake (-9806) 2016-07-20 20 fehlgeschlagen: 09: 28,014 MeineAnw [1140: 374.263] NSURLSession/NSURLConnection HTTP Last fehlgeschlagen (kCFStreamErrorDomainSSL, -9806) error = Optional (error Domain = NSURLErrorDomain Code = -1200 "Ein SSL-Fehler ist aufgetreten und eine sichere Verbindung zum Server kann nicht hergestellt werden." UserInfo = {_ kCFStreamErrorCodeKey = -9806, NSLocalizedRecoverySuggestion = Möchten Sie sich trotzdem mit dem Server verbinden ?, NSUnderlyingError = 0x154dda750 { Fehler Domai n = kCFrrorDomainCFNetwork Code = -1200 "(null)" UserInfo = {_ kCFStreamPropertySSLClientCertificateState = 0, _kCFNetworkCFStreamSSLErrorOriginalValue = -9806, _kCFStreamErrorDomainKey = 3, _kCFStreamErrorCodeKey = -9806}}, NSLocalizedDescription = Ein SSL-Fehler ist aufgetreten und eine sichere Verbindung zum Server nicht hergestellt werden., NSErrorFailingURLKey = https://example.com:8080/api/login, NSErrorFailingURLStringKey = https://example.com:8080/api/login, _kCFStreamErrorDomainKey = 3})

Das Zertifikat ist ein validiertes eines nach letsencrypt vorgesehen. Ich habe meine Webserver-Konfiguration immer wieder getestet und alles scheint so zu sein, wie es sollte.

den Befehl Ausführen openssl s_client -connect example.com:8080/api/login -tls1_2 gibt alle erwarteten Ergebnisse:

-It prüft die Behörde als DST Root CA X3, die in Apples root CA list

-Die Rückkehr enthalten ist, ist Code ist Verify return code: 0 (ok)

ich auch gelaufen Mehrere SSL-Diagnose-Tool-Websites wie digicert, die keine Fehlerergebnisse gegeben hat.


ich die Domain von Safari auf dem iOS-Gerät ohne, sowie Chrom von meinem Computer laden kann „nicht vertrauenswürdige Zertifikate“ zu akzeptieren.

Irgendwelche Vorschläge?

Antwort

1

Für den Fall, dass jemand auf dasselbe Problem stößt, beantworte ich meine eigene Frage. Zum Zeitpunkt der Frage, Let's Encrypt (die CA des verwendeten Zertifikats) unterstützt nicht Forward Secrecy für ihre https-Zertifikate (zumindest nicht die, die ich habe). Apple hat das standardmäßig in der damals verwendeten iOS-Version benötigt (ich glaube, es war etwa 9,5, aber ich könnte mich hier irren).

Um die Anforderung der Forward-Secrecy zu umgehen, kann dies in der Info.plist unter Domain-Ausnahmen angegeben werden.

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSExceptionDomains</key> 
    <dict> 
    <key>example.com</key> 
    <dict> 
     <key>NSTemporaryExceptionRequiresForwardSecrecy</key> 
     <false/> 
    </dict> 
    </dict> 
</dict> 

Irgendwann auf der Straße änderten sie dies auf Standard-Land auf false. Ich bin mir nicht sicher, wann das war, aber nach iOS 10.0 war es nie ein Problem.

Verwandte Themen