web-dev-qa-db-fra.com

la connexion SSL de l'application iOS à échoué

Je crée une application pour me connecter à un site Web aspx via HTTPS en transmettant les informations de connexion dans une méthode de publication. Lors de la vérification de la réponse à l'aide de Charles Proxy, une erreur SSL Handshake ayant échoué de seal.verisign.com a été détectée. Je suis ensuite ramené à la page de connexion. Je ne suis pas sûr de ce que je dois faire pour résoudre ce problème.

Je teste cela dans le simulateur iPhone.

Je n'ai pas accès à la mise en œuvre du serveur.

Des idées?

Je vous remercie!

25
JLau_cy

Sur iOS> = 10.3, après avoir installé le certificat Charles Proxy (comme l'exige l'excellente réponse de @ ashish-verma), vous devez également l'activer via Paramètres -> Général -> À propos de - > Paramètres de confiance du certificat:

 Enable SSL root certificate on iOS 10.3 and up

Configuration complète ici: http://www.devsbedevin.com/debugging-ios-ssl-traffic/

107
Vaiden

Peut-être qu'essayer sur un appareil réel donnera plus de perspicacité? 

Pour faire ça chez Charles:

  1. Aller au proxy: Paramètres du proxy ...
  2. Onglet Proxies: entrez "8888" dans le champ Port du proxy HTTP:
  3. Onglet SSL: assurez-vous que l'option "Activer le proxy SSL" est activée

Sur votre machine de développement:

  1. Aller aux Préférences Système: Réseau: Wifi: Avancé: Onglet TCP/IP: Notez l'adresse IPV4: (c'est-à-dire 10.0.1.101)

Sur votre iDevice:

  1. Goto http://charlesproxy.com/charles.crt à partir de votre appareil et téléchargez le certificat SSL Charles
  2. OK le certificat en tant que confiance (assurez-vous de le désactiver ou de le supprimer une fois que vous avez terminé)
  3. Allez à l'application Paramètres: Wifi: Sélectionnez le bouton de divulgation détaillée (bouton rond bleu avec la flèche blanche) pour votre réseau.
  4. Sous HTTP Proxy, sélectionnez "Manual"
  5. Entrez l'adresse de l'étape (ordinateur dev 1.) dans le champ Serveur et le numéro de port de l'étape (charles 2.). 

Finalement:

  1. Redémarrer Charles
  2. Exécutez Safari sur votre iDevice pour tester. Cela devrait inciter Charles à afficher une boîte de dialogue autorisant ou interdisant le traitement par proxy SSL. Évidemment, permettez et vous devriez être bon pour aller.

Plus d'infos sur le site de Charles: http://www.charlesproxy.com/documentation/proxying/ssl-proxying/

En outre, obtenez-vous une réponse à la connexion: (NSURLConnection *) connection didReceiveAuthenticationChallenge: (NSURLAuthenticationChallenge *), méthode challenge

13
Jalakoo

Si l'installation du certificat ne vous aide toujours pas, cela peut être dû à l'épinglage SSL.

De charlesproxy.com:

Épinglage SSL Notez que certaines applications implémentent l'épinglage de certificat SSL, ce qui signifie qu'elles valident spécifiquement le certificat racine. Parce que l'application vérifie elle-même le certificat racine, elle n'acceptera pas le certificat de Charles et échouera la connexion. Si vous avez correctement installé le certificat SSL racine Charles et pouvez naviguer sur les sites Web SSL à l'aide de SSL Proxying dans Safari, mais qu'une application échoue, alors le repérage SSL est probablement le problème .

9
Ben Thomas

Vous devez installer un certificat SSL pour résoudre ce problème.

Suivez ces étapes 

  1. Ouvrir Safari navigateur sur iOS Simulateur

  2. Tapez "www.charlesproxy.com/getssl" dans la barre d'adresse

  3. Installez leSSLcertificat
  4. Redémarrer Charles Proxy  
3
Ashish Verma

Il est possible que le serveur ne dispose pas d'un certificat valide pour l'URL que vous utilisez ..__ Avez-vous vérifié cela?

Si vous essayez l'URL en utilisant un navigateur, est-ce qu'il vous avertit?

1
gWiz

Vous devez installer un certificat SSL sur un appareil mobile.

Recherchez en ligne comment installer un certificat SSL pour Charles Proxy.

0
Rotues Jia

Supprimez toutes les anciennes informations d'identification de l'utilisateur, puis réinstallez le nouveau certificat SSL.

0
anton46