Im Idealfall sollte es nur zwei Szenarien geben, in denen eine iOS-Anwendung ein nicht vertrauenswürdiges Zertifikat akzeptieren muss.
Szenario A: Sie sind mit einer Testumgebung verbunden, die ein selbstsigniertes Zertifikat verwendet.
Szenario B: Sie stellen HTTPS
Datenverkehr mithilfe eines MITM Proxy like Burp Suite, Fiddler, OWASP ZAP, etc.
Proxys bereit. Die Proxies geben ein von einer selbstsignierten Zertifizierungsstelle signiertes Zertifikat zurück, damit der Proxy HTTPS
Datenverkehr erfassen kann .
Produktionshosts sollten aus offensichtlichen Gründen niemals nicht vertrauenswürdige Zertifikate verwenden .
Wenn der iOS-Simulator zu Testzwecken ein nicht vertrauenswürdiges Zertifikat akzeptieren muss, wird dringend empfohlen, die Anwendungslogik nicht zu ändern, um die von den NSURLConnection
APIs bereitgestellte integrierte Zertifikatvalidierung zu deaktivieren . Wenn die Anwendung für die Öffentlichkeit freigegeben wird, ohne diese Logik zu entfernen, ist sie anfällig für Man-in-the-Middle-Angriffe.
Die empfohlene Methode zum Akzeptieren nicht vertrauenswürdiger Zertifikate zu Testzwecken besteht darin, das Zertifikat der Zertifizierungsstelle (Certificate Authority, CA), das das Zertifikat signiert hat, auf Ihren iOS-Simulator oder Ihr iOS-Gerät zu importieren. Ich habe einen kurzen Blog-Beitrag geschrieben, der zeigt, wie man das mit einem iOS-Simulator macht:
Akzeptieren nicht vertrauenswürdiger Zertifikate mit dem iOS-Simulator