J'ai un certificat auto-signé au point de terminaison de mon API. J'essaye de tester certaines choses en utilisant le simulateur mais j'obtiens un "certificat de serveur non approuvé".
J'ai essayé d'utiliser safari sur le simulateur pour télécharger le fichier .crt, mais cela ne semble pas fonctionner.
D'où iPhone Simulator tire-t-il son trousseau? Comment puis-je ajouter un certificat de confiance pour que mon application fonctionne?
MISE À JOUR
Je l'ai fait fonctionner en créant une CA, puis en ajoutant un certificat CA à l'aide de l'outil de provisionnement iPhone. Ensuite, j'ai pu avoir un certificat signé par ce certificat CA sur le serveur API et le NSConnection a juste fonctionné. Je n'ai pas pu le faire fonctionner à l'aide d'un certificat auto-signé pour une raison quelconque. Je dois réessayer à l'aide du logiciel d'approvisionnement.
Ma vraie question est de savoir comment faire fonctionner cela sur le simulateur? Je pense que le simulateur utilise le trousseau de l'ordinateur réel.
Réponses:
Juste pour info, si quelqu'un rencontre toujours ce problème:
faites simplement glisser et déposez vos fichiers .cer dans la fenêtre du simulateur en cours d'exécution. Vous verrez Safari clignoter, puis la boîte de dialogue d'importation pour votre certificat (ou autorité de certification) ...
Travailler pour le simulateur iOS 7 (et je pense aussi pour iOS 6).
la source
Pour ceux qui trouvent que le glisser-déposer du certificat sur le simulateur ne fonctionne pas, il y a eu un changement récent qui ajoute une étape supplémentaire .
Le simulateur doit être explicitement informé de faire confiance à l'autorité de certification racine. Faites ceci en allant à:
Voir la réponse complète ici :
la source
Certificate Trust Settings
? Mon profil est ajouté et comprend un certificat - cela a été tout fonctionne il y a moins d'un mois. Réinitialisez mes caches de simulateur, maintenant le certificat est ajouté mais aucune option pour lui faire entièrement confiance.basicConstraints = CA:TRUE
lors de la génération du certificat à l'aide d'openssl. Sinon, il ne sera pas fiable.J'ai eu ce même problème pendant des mois et aujourd'hui je l'ai FINALEMENT résolu avec:
ADVTrustStore
Vous allez vouloir utiliser un projet appelé ADVTrustStore de github. Il fait de la magie, mais il installera correctement les certificats dans votre magasin de confiance racine sur le simulateur.
Étapes pour installer un certificat personnalisé
# Clone the repo git clone https://github.com/ADVTOOLS/ADVTrustStore.git # Enter the repo directory cd ADVTrustStore/ # Copy your .crt file cp somewhere/something.crt my.crt # conver to a .pem file openssl x509 -in my.crt -out my.pem -outform PEM # Install the pem in the simulators ./iosCertTrustManager.py -a my.pem
En utilisant ce processus, j'ai pu obtenir un rendu correct des images GoogleStreetView derrière un pare-feu d'entreprise en utilisant SSL en démissionnant avec des certificats auto-signés
Contexte
J'utilisais CharlesProxy et j'ai remarqué qu'il installait correctement les certificats dans le simulateur mais ils n'apparaissaient pas dans la section Paramètres - Profils . Puis après quelques recherches, j'ai découvert cet outil. Il existe probablement quelques autres outils, mais dans mon cas, le glisser-déposer n'a jamais fonctionné correctement dans tous les cas. Safari serait bien mais pas mes applications.
la source
Jetez un œil au script shell que Charles utilise pour installer son certificat auto-signé dans le trousseau du simulateur. http://www.charlesproxy.com/documentation/faqs/ssl-connections-from-within-iphone-applications/
Voir également:
Il semble que l'installation de votre propre certificat dans le simulateur peut nécessiter de l'installer sur un appareil via Safari, puis de copier la ligne résultante de l'appareil
TrustStore.sqlite3
dans le simulateur.la source
Pour toute personne utilisant OS X Catalina, veuillez vérifier ceci: https://forums.developer.apple.com/thread/124056 .
Catalina bloque actuellement l'accès au dossier Bureau, Documents et Téléchargements. J'ai déplacé les fichiers de certificat vers le dossier partagé et glissez-déposez les fichiers vers le simulateur à partir de là.
la source
En utilisant iPhone Backup Extractor , j'ai copié mon iPhone,
TrustStore.sqlite3
en~/Library/Application Support/iPhone Simulator/6.0/Library/Keychains
écrasant le fichier existant. J'ai essayé de n'insérer qu'une seule ligne avec le sqlite suivant, mais je n'ai pas pu le faire fonctionner.sqlite3 ~/backup/iOS\ Files/TrustStore.sqlite3 sqlite3>.mode insert sqlite3>.output working.sql sqlite3>select * from tsettings; sqlite3>.quit
Maintenant,
working.sql
a tout le contenu de la table tsettings (dans mon cas, 1 ligne).sqlite3 ~/Library/Application\ Support/iPhone\ Simulator/6.0/Library/Keychains/TrustStore.sqlite3 sqlite3>INSERT INTO tsettings VALUES(X'... sqlite3>.quit
Encore une fois, les commandes sqlite ci-dessus ne fonctionnaient pas pour moi, mais pourraient être un bon point de départ pour quelqu'un d'autre. Copier l'intégralité
TrustStore.sqlite3
de la sauvegarde dans le simulateur fonctionnait très bien.la source
Jetez un œil à la
iostrust
gemme Ruby: http://github.com/yageek/iostrustla source