Ich habe eine Anwendung, die mit vielen verschiedenen Sites kommuniziert und jede Site hat ihr eigenes SSL-Zertifikat, das von unserer eigenen internen CA signiert wurde. Auf diese Weise können wir keine SSL-Zertifikate für jede Site kaufen (Hunderte oder Tausende) und sind sicherer, als ein Platzhalterzertifikat mit einem gemeinsamen Schlüssel auf jeder dieser Sites zu verwenden. Daher ist die Verwendung eines CA-Zertifikats der einzige Weg.iPhone Benutzerdefiniertes CA-Zertifikat für eine Anwendung, die NSURLConnection verwendet?
Momentan habe ich eine mobileprovision-Datei, die das CA-Zertifikat als Profil auf dem Telefon installiert. Wenn unsere iPhone-Anwendung gestartet wird, wenn ein SSL-Zertifikatfehler auftritt, wird sie über Safari an eine solche Bereitstellungsdatei weitergeleitet, und der Benutzer wird aufgefordert, die Zertifizierungsstelle zu installieren.
Das Problem ist, dass ich besorgt bin, dass der Apple AppStore meine App dafür bestreiten könnte (nur ein paar Rückmeldungen von anderen Entwicklern an dieser Stelle), und ich wollte andere Wege erforschen, um dies zu erreichen.
Grundsätzlich muss ich eine SSL-Verbindung zulassen, die gegen ein benutzerdefiniertes CA-Zertifikat verifiziert, das in meine Anwendung eingebettet wird. Dadurch wird das CA-Zertifikat nur für die von mir getätigten Anrufe aktiviert. Ich verwende die Standard-NSURLConnection-Methoden, um mit dem Dienst zu kommunizieren.
Ist das möglich? Kann mir jemand zeigen, wie man die CA lädt (welche Form PEM?) Und sie der Liste vertrauenswürdiger CA-Zertifikate für meine Anwendung hinzufügt? Wenn das nicht möglich ist, welche anderen Möglichkeiten habe ich? Nur auf alle Zertifikate zu vertrauen, ist keine Option, wir wollen verhindern, dass der Mensch in der Mitte der Angriffe ist und vertrauen nur unseren CA Zertifikaten.
Danke!
-1 ohne Kommentar. nett! –