Je dois connecter mon application iPhone à un serveur avec un certificat auto-signé via HTTPS. Je ne peux pas changer le certificat ou le serveur. Puisque je ne veux pas accepter tous les certificats auto-signés, juste celui-ci, mon idée était d'importer le CERT dans le trousseau d'applications (lire le CERT du fichier et l'ajouter au trousseau avec SecItemAdd
).HTTPS avec certificat auto-signé dans le trousseau de l'application
Si je lance l'application dans le simulateur, installez le cert et la recherche puis le trousseau pour (à l'aide SecItemCopyMatching
), le cert se trouve, mais la connexion échoue toujours avec « certificat de serveur non sécurisé » erreur.
Est-ce un problème avec le simulateur ou mon application? Dois-je faire autre chose pour que cela fonctionne? Ou puis-je supposer que si j'ajoute un certificat au trousseau sur un périphérique réel, la connexion au serveur sera réussie (j'utilise NSURLConnection.sendSynchronousRequest
)?
Merci pour toute aide!
Est-ce que cela ne changerait pas mon application pour accepter un certificat auto-signé? Je voudrais activer les connexions uniquement avec ce cert spécifique. Est-ce possible avec une entrée de keychain (comme en Java)? – jelenaasche
cette propriété est juste définie à la demande, pas pour l'application entière. – Morion
Désolé pour la confusion, je voulais dire des demandes, pas toute l'application. Je voudrais établir la connexion seulement si le serveur a ce cert spécifique, pas n'importe quel autre autosigné. Est-il possible avec l'entrée de keychain? – jelenaasche