2010-02-24 15 views
5

Ich möchte eine Anwendung auf dem iPhone-Simulator testen, die eine Verbindung zu einem Dienst mit einem Zertifikat, das von unserer eigenen CA signiert ist, verbindet. Ich kann dies auf dem tatsächlichen Gerät tun, indem ich ein Bereitstellungsprofil mit dem CA-Zertifikat hinzufüge. Ich dachte, dass das CA-Zertifikat im Standard-OSX-Schlüsselbund funktionieren würde, aber nicht.iPhone Simulator benutzerdefinierte CA-Zertifikat

So kann ich über Safari ohne Warnung auf den Dienst zugreifen, aber ich bekomme Fehler beim Versuch, Dinge im Simulator zu laufen.

Antwort

4

Die Crypto-APIs sind für den Simulator nicht verfügbar. Ich glaube, jemand bei Apple hat Crack geraucht, als sie diese Entscheidung getroffen haben, weil ich nicht gesehen habe, wie ein iPhone das Ergebnis eines kryptografischen Algorithmus verändert. Dennoch, um mit diesen Systemen zu entwickeln, benötigen Sie ein iPhone oder iPod touch.

+0

Boo. Also, du sagst SSL funktioniert überhaupt nicht auf dem Simulator? –

+0

Ich habe einfach SSL auf dem Simulator gemacht. Das wird gut funktionieren. Es scheint jedoch (gemäß diesem Beitrag), dass Sie keine neuen Zertifikate auf dem Simulator installieren können. Ist das der Fall? – mtmurdock

+1

Sie können neue Zertifikate auf dem Simulator installieren. Dazu müssen sie manuell zum Schlüsselbund des Simulators hinzugefügt werden. So wie ich es gesehen habe, füge das Zertifikat zu einem Gerät hinzu, schaue den db-Eintrag an, der auf dem Gerät erstellt wurde, und kopiere es dann manuell in die db, die der Simulator benutzt. Ein Skript für das spezielle für Charles verwendete Zertifikat finden Sie unter http://www.charlesproxy.com/documentation/faqs/ssl-connections-from-within-iphone-applications/ –

0

Es scheint in Ordnung zu sein, wenn ich den Emulator auf einen unserer Live-Server zeige, die ein "echtes" Zertifikat verwenden. Aber ich habe gerade 1200 Fehler bekommen, um den Emulator dazu zu bringen, mit einem lokalen Testserver zu sprechen, den ich heute Morgen eingerichtet habe.

Also muss es Kryptobibliotheken dort geben (oder unsere App würde nicht mit den Live-Servern mit echten Zertifikaten sprechen), aber es scheint sicherlich ein Problem mit selbstsignierten Zertifikaten zu geben.

+1

ps.s. Ich kann zu diesem Server browsen und sein Zertifikat von meinem Desktop akzeptieren. – graham

1

Diese link arbeitete für mich

canAuthenticateAgainstProtectionSpace Methode ja zurückzukehren gesetzt. HINWEIS: Dies wird jedes Zertifikat akzeptieren so sollte für Produktionsfreigaben entfernt werden: dh: NUR zum Testen