kCFStreamErrorDomainSSL, -9802 lors de la connexion à un serveur par son adresse IP via le protocole HTTPS dans iOS 9
Nous avons une application iOS qui se connecte à notre serveur via le protocole HTTPS. Lorsque l'application est construite avec le nouvel iOS 9 SDK et a couru sous iOS 9, l'erreur suivante se produit:
NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)
L'application utilise AFNetworking 1.3.4 avec épinglé certs. Le problème se produit si je me connecte au serveur par son adresse IP. Il fonctionne si j'ajoute le NSAllowsArbitraryLoads de config, ou si je me connecter au serveur avec son nom de domaine.
Le Tomcat connecteur est configuré avec sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2".
J'ai essayé substituant le nom de l'hôte mais il ne semble pas à changer quoi que ce soit.
Je ne trouve pas beaucoup de documentation officielle sur ATS encore. Peut-être la connexion avec adresse IP n'est pas censé fonctionner?
- double possible de NSURLSession/NSURLConnection HTTP échec de chargement de la
Vous devez vous connecter pour publier un commentaire.
iOS9 nécessite que le serveur pour prendre en charge uniquement TLSv1.2 et un soutien parfait de l'avant la sécurité.
Est aussi nécessaire pour que l'application prend en charge IPV6, y compris de ne pas utiliser codée en dur adresses IP. Il est suggéré d'utiliser
NSURLSession
. Sinon exception des ajouts doivent être réalisés dans l'application plist.Voir la WWDC-15 session "de la Sécurité et de vos Applications".
Voir aussi Steven Peterson Blog pour plus de détails.
kCFStreamErrorDomainSSL, -9802
)Vous pouvez ajouter dans votre "Info.plist" fichier, il permettra non des connexions sécurisées:
J'ai trouvé un autre débordement de pile réponse avec une liste de contrôle de l'exacte de nouvelles exigences sur le serveur afin de remplir pleinement l'iOS 9 par défaut de l'Application de Transport les exigences de Sécurité:
iOS 9 Serveur de Sécurité Liste de contrôle des exigences
Espère que ça aide.
J'ai coincé sur celui-ci pendant un certain temps et essayé tous les trucs dans l'Info.plist mais avait toujours l'erreur:
lorsque vous essayez de vous connecter à un serveur localhost dans le développement.
Développement local avec un réagir projet natifs de la connexion à un API servi avec un certificat auto-signé, j'ai eu mon système de jeu pour approuver le certificat, mais il m'a fallu un certain temps pour réaliser que j'ai aussi besoin de le simulateur IOS à accepter mon cert confiance pour sortir de cette erreur.
Dans l'écran d'accueil de votre simulateur, vous devriez être en mesure de faire glisser le fichier cert dans le simulateur pour l'inciter à ajouter le certificat de profil.
Ou, si le certificat est accessible via une url localhost dans le simulateur du navigateur safari, vous pourriez être en mesure de l'accepter par safari.
Espère que cela aide quelqu'un que je suis allé tourner en rond avant de cliqué pour moi!
Solution 1 :
Si vous êtes à la recherche pour
work around
puis utilisez ci-dessous approche :Votre Info.plist fichier devrait ressembler à ceci :
Cependant, cette approche n'est pas recommandé, car il permet à toute connexion non sécurisée.
Solution 2 :
La
SSL certificate that you apply on Server should be of type TLSv2.0 minimum since iOS 10 requires this.
Cochez cette lien pour plus de détails.
Votre Info.plist fichier devrait ressembler à ceci :