web-dev-qa-db-fra.com

Comment configurer des certificats SSL avec Charles Web Proxy et le dernier émulateur Android sous Windows?

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.

57
Martyn

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.

48
bcj19

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

  1. Installer la version complète de charles sous licence
  2. Proxy -> Paramètres du proxy -> Cochez “Activer le proxy HTTP transparent”
  3. Proxy -> Paramètres de proxy SSL -> Cochez “Activer le proxy SSL”
  4. Proxy -> Paramètres de proxy SSL -> cliquez sur le bouton Ajouter et entrez * dans les deux champs
  5. Proxy -> Paramètres de contrôle d'accès -> Ajoutez votre sous-réseau local (ex: 192.168.2.0/24) pour autoriser toutes les machines de votre réseau local à utiliser le proxy depuis une autre machine.
  6. Il peut être judicieux de configurer l’outil de sauvegarde automatique dans charles, cela enregistrera et fera pivoter automatiquement les journaux de charles. 

Machine client:

  1. Installer et accepter en permanence/faire confiance au certificat SSL de charles
    http://www.charlesproxy.com/documentation/using-charles/ssl-certificates/
  2. Configurez IE, Firefox et Chrome pour utiliser le socket charles héberge le proxy (ex: 192.168.1.100:8888)

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/

66
brakertech

Voici ce que vous devez faire ici: instructions pas à pas pour le faire sur un appareil Android Devrait être le même pour iOS:

  1. Charles ouvert
  2. Sélectionnez Proxy> Paramètres du proxy> SSL.
  3. Cochez «Activer le proxy SSL»
  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 que l'option est cochée.
  6. Téléchargez le cert de Charles à partir d'ici: Charles cert>
  7. Envoyez ce fichier à vous-même dans un email.
  8. Ouvrez l'email sur votre appareil et sélectionnez le certificat
  9. Dans «Nommez le certificat», entrez ce que vous voulez
  10. Cliquez sur OK et vous devriez recevoir un message indiquant que le certificat a été installé.

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:

  1. Dans Charles, accédez à Outils> Carte locale 
  2. Sélectionnez "Ajouter entrée"
  3. Entrez les valeurs du fichier que vous souhaitez remplacer
  4. Dans «Chemin local», sélectionnez le fichier que vous souhaitez que l'application charge à la place.
  5. Cliquez sur OK
  6. Assurez-vous que l'entrée est sélectionnée et cliquez sur OK
  7. Lancez votre application
  8. Vous devriez voir dans «Notes» que votre fichier est chargé à la place du fichier live.
25
bkurzius

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

 Charles SSL Proxying

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).

 enable HTTP Proxying

20
apouche

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

Charles

  1. Activer le proxy HTTP transparent
  2. Activer le proxy SSL
  3. Faites un clic droit sur la demande entrante et sélectionnez le proxy SSL

Mac

  1. Télécharger le kit de certificats Charles CA http://www.charlesproxy.com/ssl.Zip
  2. Ecrivez vous charles-proxy-ssl-proxying-certificate.crt

iPhone

  1. Activer le proxy http pour Charles sur le port 8888
  2. Sélectionnez et installez une pièce jointe à un e-mail. Oui, faites-lui confiance!

Voila, vous pouvez maintenant voir le trafic crypté du domaine ajouté dans le proxy SSL

7
gini

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/

6
Vineet Bhatia

Ces choses m'ont aidé 

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

 enter image description here  enter image description here

  1. Cliquez avec le bouton droit sur le nom de votre site dans le panneau de gauche et choisissez "Activer Proxy SSL"  enter image description here

J'espère que cela aide quelqu'un là-bas.

0
iPhoneDeveloper