Ajouter un certificat auto-signé au simulateur iphone?
j'ai un certificat auto-signé à la fin de mon API. J'essaie de tester certaines choses en utilisant le simulateur, mais je reçois un "certificat de serveur non fiable".
j'ai essayé d'utiliser safari sur le simulateur pour télécharger l' .dossier crt, mais ça ne semble pas fonctionner.
D'où vient le porte-clés iPhone Simulator? Comment puis-je ajouter un certificat de confiance pour mon application?
UPDATE
j'ai réussi à le faire fonctionner en créant une CA puis en ajoutant un certificat CA À l'aide de l'outil de provisionnement iPhone. Puis j'ai pu avoir un certificat signé par CE certificat de L'AC Sur le serveur API et la connexion NSC a fonctionné. Je n'ai pas été en mesure de le faire fonctionner en utilisant un certificat auto-signé pour une raison quelconque. Je dois réessayer ça en utilisant le logiciel d'approvisionnement.
ma vraie question est comment faire pour que cela fonctionne sur le simulateur? Je pense que le simulateur utilise le trousseau d'accès de l'ordinateur réel.
6 réponses
juste pour Info, si quelqu'un se heurte encore à ce problème:
simplement glisser et déposer votre .les fichiers cer dans votre fenêtre running Simulator. Vous verrez Safari clignoter et ensuite le dialogue Importer pour votre certificat (ou Autorité de certificat)...
travaillant pour le simulateur iOS 7 (et je pense qu'il a aussi fonctionné pour iOS 6).
pour ceux qui constatent que le déplacement et le largage du certificat sur le simulateur ne fonctionnent pas, il y a eu un changement récent qui ajoute une étape supplémentaire .
le simulateur doit recevoir l'instruction explicite de faire confiance à l'AC racine. Faites ceci en allant à:
Général -> a Propos -> Paramètres de Confiance des Certificats -> "Activer le Plein de Confiance pour le Certificat Racine" de votre certificat
voir la réponse complète ici :
regardez le script shell que Charles utilise pour installer leur certificat signé dans le porte-clés du simulateur. http://www.charlesproxy.com/documentation/faqs/ssl-connections-from-within-iphone-applications /
voir aussi:
il semble que l'installation de votre propre certificat dans le simulateur peut nécessiter son installation sur un appareil via Safari, puis la copie de la rangée résultant de l'appareil TrustStore.sqlite3
dans le simulateur.
j'ai eu ce même problème pendant des mois et aujourd'hui je L'ai finalement résolu avec:
Advtrustststore
vous allez vouloir utiliser un projet appelé ADVTrustStore de github. Il fait un peu de magie de fantaisie, mais il installera correctement des certificats dans votre Root trust-store 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
grâce à ce procédé, j'ai pu obtenez GoogleStreetView images à rendre correctement alors que derrière un pare-feu d'entreprise en utilisant SSL démissionner avec des certificats auto-signés
arrière-plan
J'utilisais CharlesProxy et j'ai remarqué qu'il installait correctement les certificats dans le simulateur, mais ils ne sont pas apparus dans la section paramètres - profils . Puis, après quelques recherches, j'ai découvert cet outil. Il y a probablement quelques autres outils, mais dans mon cas, le glisser-déposer n'a jamais fonctionné correctement pour tous les cas. Safari serait bien, mais pas mes applications.
en utilisant Extracteur de sauvegarde iPhone , j'ai copié mon iPhone TrustStore.sqlite3
dans ~/Library/Application Support/iPhone Simulator/6.0/Library/Keychains
, écrasant le fichier existant. J'ai essayé d'insérer une seule rangée 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
contient tout le contenu de la table tsettings (dans mon cas, 1 rangée).
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 une bonne point de départ pour quelqu'un d'autre. Copier le TrustStore.sqlite3
entier de la sauvegarde dans le simulateur fonctionne très bien.
regardez le iostrust
rubis gem: http://github.com/yageek/iostrust