Je souhaite utiliser le proxy Web Charles pour travailler avec l'émulateur Android sous Windows. J'ai configuré avec succès charles et lancé l'émulateur avec la ligne de commande:
emulator -http-proxy 127.0.0.1:8888 @NexusOne
Je peux voir le trafic provenant de l'émulateur Android de Charles, mais le problème est que je suis en train de développer une API vivante qui utilise SSL et je ne sais pas comment configurer Charles pour qu'il me laisse jouer les données envoyées reçu. Je connais deux domaines dans lesquels SSL est configuré dans Charles (Proxy -> Paramètres de proxy -> SSL et proxy -> Certificats SSL client), mais je ne trouve aucune documentation valable qui me laisse faire ce que je veux faire . Quelqu'un at-il une expérience avec Charles, ou des certificats en général, qui peut expliquer comment y parvenir? Une introduction aux certificats serait peut-être également utile, car il me semble que je ne sais pas pourquoi c'est si difficile.
Dans Charles, accédez à Proxy >> Paramètres du proxy et sélectionnez l'onglet SSL. Ajoutez votre hôte à la liste des emplacements.
Par exemple, si votre appel sécurisé est destiné à https://secure.example.com , vous pouvez entrer secure.example.com ou * .example.com.
Une fois que ce qui précède est en place, vous devrez peut-être cliquer avec le bouton droit sur l’appel dans la fenêtre principale de Charles et sélectionner l’option Proxy SSL.
J'espère que cela t'aides.
Pour capturer à distance le trafic http ou https avec charles, vous devez procéder comme suit:
Hôte - Machine exécutant Charles et hébergeant le proxy CLIENT - Machine de l’utilisateur générant le trafic que vous allez capturer
Machine hôte
Machine client:
Lorsque j'ai testé cela, j'ai pris deux lignes d'un chat Facebook HTTPS (l'une était une ligne À quelqu'un et l'autre DE).
vous pouvez également capturer le trafic de l'émulateur Android de cette manière si vous démarrez l'émulateur avec:
emulator -avd <avd name> -http-proxy http://local_ip:8888/
Où LOCAL_IP est l'adresse IP de votre ordinateur et non 127.0.0.1, car il s'agit de l'adresse IP du téléphone émulé.
Source: http://brakertech.com/capture-https-traffic-remotely-with-charles/
Voici ce que vous devez faire ici: instructions pas à pas pour le faire sur un appareil Android Devrait être le même pour iOS:
Vous devriez alors pouvoir voir les fichiers SSL dans Charles. Si vous voulez intercepter et changer les valeurs, vous pouvez utiliser l'outil "Map Local" qui est vraiment génial:
Les choses ont un peu changé dans la manière dont Charles fournit le proxy HTTPS.
D'abord, les options d'installation des certificats ont été déplacées vers le menu d'aide.
Help -> SSL Proxying -> Install Charles Root Certificate
Help -> SSL Proxying -> Install Charles Root Certificate in iOS Simulators
Deuxièmement, à partir de iOS 9, vous devez fournir une option NSAppTransportSecurity
dans votre Info.plist
et si vous voulez que Charles fonctionne correctement en tant qu'homme au milieu, vous devez ajouter:
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
dans le cadre de vos domaines, voir l'exemple complet:
<key>NSExceptionDomains</key>
<dict>
<key>yourdomain.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
La raison étant (je suppose) que Charles communique à un moment donné en http clair après avoir joué le rôle d’homme au milieu du serveur https.
La dernière étape consiste à activer le proxy SSL pour ce domaine dans Charles (cliquez avec le bouton droit de la souris sur le domaine et sélectionnez Activer le proxy SSL).
Ce qui a fonctionné pour moi - devrait vraiment être déplacé sur iPhone:
Charles
Mac
iPhone
Voila, vous pouvez maintenant voir le trafic crypté du domaine ajouté dans le proxy SSL
Vous devez également cliquer sur "Installer les certificats SSL Charles CA .." dans le menu Aide de Charles. Voir les instructions plus détaillées sur http://blog.noodlewerk.com/general/tutorial-using-charles-proxy-to-debug-https-communication-between-server-and-ios-apps/