Comment configurer des certificats SSL avec Charles Web Proxy et le dernier Android Emulator sur Windows?

StackOverflow https://stackoverflow.com/questions/3976728

Question

Je voudrais utiliser le proxy web Charles à travailler avec l'émulateur Android dans Windows. Je l'ai mis avec succès charles et ont commencé 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 dans Charles, mais le problème est que je développe contre une API en direct qui utilise le protocole SSL et je ne suis pas sûr de savoir comment configurer Charles pour me laisser jouer sur les données qui est envoyé et reçu. Je connais deux domaines dans lesquels SSL est mis en place dans Charles (Proxy -> Paramètres du proxy -> SSL et Proxy -> Client SSL certificats), mais je ne peux pas trouver toute la documentation décente qui m'a laissé faire ce que je veux faire . A de l'expérience avec quelqu'un Charles, ou des certificats en général, qui peuvent expliquer comment y parvenir. Peut-être un apprêt sur les certificats serait bon aussi, comme il me semble être la connaissance manque de savoir pourquoi cela est si difficile.

Était-ce utile?

La solution

Charles, allez à Proxy >> Paramètres du proxy et sélectionnez l'onglet SSL. Ajouter votre hôte à la liste des emplacements.

Par exemple, si votre appel sécurisé va https://secure.example.com , vous pouvez entrer secure.example.com, ou * .example.com.

Une fois ce qui précède est en place, vous devrez peut faire un clic droit sur l'appel dans la fenêtre principale Charles et sélectionnez l'option SSL mandatement.

Hope this helps.

Autres conseils

Pour capturer à distance le trafic HTTP ou HTTPS avec charles vous devez faire ce qui suit:

HOST - Machine en marche Charles et le proxy d'hébergement CLIENT - la machine de l'utilisateur de générer le trafic que vous capturera

Machine hôte

  1. Installer la version de charles complète sous licence
  2. Proxy -> Paramètres du proxy -> cochez la case « Activer HTTP transparent mandatement »
  3. Proxy -> SSL mandatement Paramètres -> cocher « activer SSL mandatement »
  4. Proxy -> SSL mandatement Paramètres -> cliquez sur le bouton Ajouter et entrez * dans les deux champs
  5. Proxy -> accès Paramètres de contrôle -> Ajoutez votre sous-réseau local (ex: 192.168.2.0/24) d'autoriser toutes les machines sur votre réseau local pour utiliser le proxy d'une autre machine
  6. Il pourrait être souhaitable de mettre en place la « sauvegarde automatique outil » dans charles, cette auto sauvera et faire pivoter les journaux charles.

Machine client:

  1. Installer et accepter en permanence / confiance du certificat SSL charles
    http://www.charlesproxy.com/documentation/using-charles/ssl- certificats /
  2. Configurer IE, Firefox, Chrome et à utiliser la prise Charles accueille la procuration (ex: 192.168.1.100:8888)

Quand je l'ai testé ceci j'ai ramassé deux lignes d'un Facebook HTTPS (le chat un était une ligne à quelqu'un, et l'autre)

vous pouvez également capturer le trafic émulateur Android cette façon 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 pas comme 127.0.0.1 qui est l'adresse IP du téléphone émulé.

Source: http://brakertech.com/capture-https-traffic -remotely avec-charles /

Pour ce que ça vaut la peine voici les instructions étape par étape pour ce faire dans un appareil Android. Devrait être la même chose pour iOS:

  1. Ouvrir Charles
  2. Aller à Proxy> Paramètres du proxy> SSL
  3. Cochez la case « Activer SSL mandatement »
  4. Sélectionnez « Ajouter un emplacement » et entrez le nom d'hôte et le port (si nécessaire)
  5. Cliquez sur OK et assurez-vous l'option est cochée
  6. Télécharger le cert Charles d'ici: Charles cert>
  7. Envoyer ce fichier à vous dans un e-mail.
  8. Ouvrez l'e-mail sur votre appareil et sélectionnez le cert
  9. Dans « Nom du certificat », entrez ce que vous voulez
  10. Cliquez sur OK et vous devriez obtenir un message que le certificat a été installé

Vous devriez alors être en mesure de voir les fichiers SSL dans Charles. Si vous voulez intercepter et modifier les valeurs que vous pouvez utiliser l'outil « Local Map » qui est vraiment génial:

  1. Dans Charles aller à Outils> Local
  2. Sélectionnez "Ajouter entrée"
  3. Entrez les valeurs du fichier que vous souhaitez remplacer
  4. Dans « Chemin d'accès local », sélectionnez le fichier que vous voulez que l'application pour charger la place
  5. Cliquez sur OK
  6. Assurez-vous que l'entrée est sélectionné et cliquez sur OK
  7. Lancez votre application
  8. Vous devriez voir dans « Notes » que vos charges de fichiers au lieu de celui en direct

Les choses ont un peu changé dans la façon dont Charles fournit HTTPS mandatement.

D'abord les options d'installation des certificats ont été déplacés dans le menu d'aide.

Help -> SSL Proxying -> Install Charles Root Certificate
Help -> SSL Proxying -> Install Charles Root Certificate in iOS Simulators

 Charles SSL mandatement

En second lieu, à partir de 9 iOS vous devez fournir une option de NSAppTransportSecurity dans votre Info.plist et si vous voulez Charles fonctionne correctement comme un homme au milieu, vous devez ajouter:

<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>

dans le cadre des vos domaines voir 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 d'être (je suppose) que Charles à un moment donné communique en HTTP après avoir agi comme l'homme dans le serveur milieu https.

La dernière étape consiste à activer SSL mandatement pour ce domaine dans Charles (clic droit sur le domaine et sélectionnez Activer SSL mandatement)

 activer HTTP mandatement

Ce qui a fonctionné pour moi - devrait vraiment être déplacé à l'iPhone:

Charles

  1. Activer transparent Http proxy
  2. Activer SSL mandatement
  3. Faites un clic droit sur requête entrante et sélectionnez SSL mandatement

Mac

  1. Télécharger Charles CA paquet Certificat http://www.charlesproxy.com/ssl.zip
  2. Envoyer vous charles-proxy-ssl-mandatement-certificate.crt

iPhone

  1. Activer http proxy pour Charles sur le port 8888
  2. Sélectionnez et installez pièce jointe, oui lui font confiance!

Voila, vous pouvez maintenant visualiser le trafic crypté à partir du domaine ajouté dans le SSL mandatement

Vous devriez également cliquer sur "Install Charles CA Certificats SSL .." dans le menu Aide Charles. Voir les instructions plus détaillées à http://blog.noodlewerk.com/general/tutorial-using-charles-proxy-to-debug-https-communication-between-server-and-ios-apps/

Ces choses m'a aidé

  1. Aller à proxy -> Paramètres de proxy SSL -> Ajouter
  2. Ajoutez votre nom de site ici et donner le numéro de port que 8888

entrer la description d'image ici

  1. Faites un clic droit sur le nom du site sur le panneau gauche et choisissez « Activer SSL mandatement » entrer la description d'image ici

Espérons que cela aide quelqu'un là-bas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top