Ich habe ein selbstsigniertes Zertifikat am Endpunkt meiner API. Ich versuche, einige Dinge mit dem Simulator zu testen, erhalte jedoch ein "nicht vertrauenswürdiges Serverzertifikat".
Ich habe versucht, Safari auf dem Simulator zu verwenden, um die CRT-Datei herunterzuladen, aber das scheint nicht zu funktionieren.
Woher bezieht der iPhone Simulator seinen Schlüsselbund? Wie kann ich ein vertrauenswürdiges Zertifikat hinzufügen, damit meine Anwendung funktioniert?
AKTUALISIEREN
Ich habe es zum Laufen gebracht, indem ich eine Zertifizierungsstelle erstellt und dann mit dem iPhone-Bereitstellungstool ein Zertifizierungsstellenzertifikat hinzugefügt habe. Dann konnte ich ein Zertifikat von diesem CA-Zertifikat auf dem API-Server signieren lassen, und die NSConnection funktionierte gerade. Ich konnte es aus irgendeinem Grund nicht mit einem selbstsignierten Zertifikat zum Laufen bringen. Ich muss dies mit der Bereitstellungssoftware erneut versuchen.
Meine eigentliche Frage ist, wie ich das auf dem Simulator zum Laufen bringen kann. Ich würde denken, dass der Simulator den Schlüsselbund des tatsächlichen Computers verwendet.
Antworten:
Nur zur Information, wenn noch jemand auf dieses Problem stößt:
Ziehen Sie Ihre .cer-Dateien einfach per Drag & Drop in Ihr laufendes Simulator-Fenster. Sie sehen, dass Safari blinkt und dann der Importdialog für Ihr Zertifikat (oder Ihre Zertifizierungsstelle) ...
Arbeiten für iOS 7 Simulator (und i Think funktionierte auch für iOS 6).
quelle
Für diejenigen, die feststellen, dass das Ziehen und Ablegen des Zertifikats auf dem Simulator nicht funktioniert, wurde kürzlich eine Änderung vorgenommen , die einen zusätzlichen Schritt hinzufügt .
Der Simulator muss ausdrücklich angewiesen werden, der Stammzertifizierungsstelle zu vertrauen. Gehen Sie dazu zu:
Die vollständige Antwort finden Sie hier :
quelle
Certificate Trust Settings
? Mein Profil hinzugefügt wird und enthält ein Zertifikat - das wurde gerade arbeitet weniger als vor einem Monat. Setzen Sie meine Simulator-Caches zurück. Jetzt wird das Zertifikat hinzugefügt, aber es gibt keine Möglichkeit, ihm vollständig zu vertrauen.basicConstraints = CA:TRUE
beim Generieren des Zertifikats mit openssl. Andernfalls wird es nicht als vertrauenswürdig angezeigt.Ich hatte das gleiche Problem seit Monaten und heute habe ich es ENDLICH gelöst mit:
ADVTrustStore
Sie möchten ein Projekt namens ADVTrustStore verwenden von github verwenden. Es macht etwas ausgefallene Magie, aber es installiert Zertifikate korrekt in Ihrem Root-Trust-Store auf dem Simulator.
Schritte zum Installieren eines benutzerdefinierten Zertifikats
Mithilfe dieses Prozesses konnte ich GoogleStreetView-Bilder hinter einer Unternehmensfirewall mithilfe von SSL mit selbstsignierten Zertifikaten korrekt rendern lassen
Hintergrund
Ich habe CharlesProxy verwendet und festgestellt, dass Zertifikate korrekt im Simulator installiert wurden, aber sie wurden nicht im Abschnitt Einstellungen - Profile angezeigt. Dann habe ich nach einigem Suchen dieses Tool entdeckt. Es gibt wahrscheinlich ein paar andere Tools, aber in meinem Fall hat das Drag & Drop nie in allen Fällen richtig funktioniert. Safari wäre in Ordnung, aber nicht meine Anwendungen.
quelle
Schauen Sie sich das Shell-Skript an, mit dem Charles sein selbstsigniertes Zertifikat im Schlüsselbund des Simulators installiert. http://www.charlesproxy.com/documentation/faqs/ssl-connections-from-within-iphone-applications/
Siehe auch:
Es sieht so aus, als ob für die Installation Ihres eigenen Zertifikats im Simulator möglicherweise die Installation über Safari auf einem Gerät und das anschließende Kopieren der resultierenden Zeile vom Gerät erforderlich ist
TrustStore.sqlite3
in das Simulator .quelle
Wenn Sie OS X Catalina verwenden, überprüfen Sie dies bitte: https://forums.developer.apple.com/thread/124056 .
Catalina blockiert derzeit den Zugriff auf den Ordner Desktop, Dokumente und Downloads. Ich habe Zertifikatdateien in den freigegebenen Ordner verschoben und die Dateien von dort in den Simulator gezogen und dort abgelegt.
quelle
Mit iPhone Backup Extractor , kopiert ich mein iPhone
TrustStore.sqlite3
in~/Library/Application Support/iPhone Simulator/6.0/Library/Keychains
, überschreiben die vorhandene Datei. Ich habe versucht, nur eine einzelne Zeile mit dem folgenden SQLite einzufügen, aber ich konnte es nicht zum Laufen bringen.working.sql
Hat jetzt den gesamten Inhalt der tsettings-Tabelle (in meinem Fall 1 Zeile).Auch hier haben die oben genannten SQLite-Befehle für mich nicht funktioniert, könnten aber ein guter Ausgangspunkt für jemand anderen sein. Das Kopieren des gesamten
TrustStore.sqlite3
Backups in den Simulator hat einwandfrei funktioniert.quelle
Schauen Sie sich das
iostrust
Ruby-Juwel an: http://github.com/yageek/iostrustquelle