Proxy SSL/Charles et Android de la difficulté à
je veux tester les appels Https de l'appareil android en utilisant L'outil proxy Charles. J'ai besoin de voir le contenu brut de la requête/réponse pour l'application de débogage. J'ai configuré Charles en ajoutant l'hôte et le port sous "Proxy Settings" -> onglet SSL. Quand je lance l'application, tous les appels SSL semblent disparaître rapidement du Charles. Quelqu'un a une idée de comment résoudre ce problème. Charles documentation ne semble pas avoir d'informations pour les appareils Android.
8 réponses
pour L'Androide7
se référer à: comment faire pour que charles proxy travaille avec Android 7 nougat?
pour la version Android ci-dessous Android7
à partir de votre ordinateur, lancez Charles :
-
Ouvrir les Paramètres de Proxy: Proxy -> Paramètres de Proxy, de l'Onglet proxy, cochez la case "Activer l'utilisation de proxy HTTP transparent", et n'oubliez pas de "Port" dans le cœur.
-
paramètres de Proxy SSL:Proxy -> paramètres de Proxy SSL, onglet Proxy SSL, cochez" enable SSL Proxying "et ajoutez . à des endroits:
-
Ouvrir Les Paramètres De Contrôle D'Accès: Proxy -> Paramètres De Contrôle D'Accès. Ajouter votre sous-réseau local pour autoriser les machines sur votre réseau local à utiliser le mandataire d'une autre machine/mobile.
Dans Le Téléphone Android :
-
configurez votre mobile: allez dans Paramètres - > Sans fil & Réseaux - > WiFi - > connectez ou modifiez votre réseau, remplissez l'adresse IP de l'ordinateur et le Port (8888):
-
obtenez le certificat Charles SSL. Visitez cette url à partir de votre navigateur mobile: http://charlesproxy.com/getssl
-
Dans "Nom du certificat" entrez ce que vous voulez
-
Accepter l'avertissement de sécurité et installer le certificat. Si vous l'installez réussi, alors vous voyez probablement sth comme ça: Dans votre téléphone, Paramètres -> Sécurité -> confiance des justificatifs d'identité:
fait.
alors vous pouvez avoir un test sur votre mobile, la requête https cryptée sera affichée en Charles:
Edit-cette réponse était pour une version antérieure de Charles. Voir la réponse de @semicrle21 ci-dessous pour les étapes appropriées pour v3.10.x -- beaucoup plus facile que cette approche trop... :- )
pour ce que ça vaut, voici les instructions étape par étape. Ils devraient également s'appliquer à iOS:
- Ouvrir Charles
- aller à Proxy > paramètres de Proxy > SSL
- Check "activer SSL Proxying"
- sélectionnez "Ajouter un emplacement" et entrez le nom de l'hôte et le port (si nécessaire)
- cliquez sur ok et assurez-vous que l'option est cochée
- télécharger le certificat Charles d'ici: certificat Charles >
- Envoyer ce fichier à un e-mail.
- ouvrez l'email sur votre appareil et sélectionnez le cert
- Dans "Nom du certificat" entrez ce que vous voulez
- cliquez sur OK et vous devriez recevoir un message indiquant que le certificat a été installé
vous devriez alors être en mesure de voir les fichiers SSL dans Charles. Si vous voulez intercepter et changer les valeurs, vous pouvez utiliser L'outil "Map Local" qui est vraiment impressionnant:
- En Charles aller aux outils > Carte locale
- sélectionner "Ajouter une entrée"
- entrez les valeurs pour le fichier que vous voulez remplacer
- dans" chemin Local " sélectionnez le fichier que vous voulez que l'application charge à la place
- Cliquez sur OK
- assurez-vous que l'entrée est sélectionnée et cliquez sur OK
- Exécuter votre application
- Vous devriez voir dans les "Notes" que votre fichier se charge plutôt que de la vivre
Merci pour la réponse de @bkurzius et cette mise à jour est pour Charles 3.10+. (La raison est ici )
- Ouvrir Charles
- allez à Proxy > paramètres de Proxy SSL...
- cochez la Case "Activer le protocole SSL Proxy"
- sélectionnez "Ajouter un emplacement" et entrez le nom de l'hôte et le port (si nécessaire)
- cliquez sur ok et assurez-vous que l'option est cochée
- Aide > SSL Proxying >
Install Charles Root Certificate on a Mobile Device or Remote Browser...
, et il suffit de suivre les instructions. (utilisez le navigateur de L'Android pour télécharger et installer le certificat.) - Dans "Nom du certificat" entrez ce que vous voulez
- cliquez sur OK et vous devriez recevoir un message indiquant que le certificat a été installé
voir ici:
il faudrait installer le charles.certificat crt à votre appareil.
les réponses les mieux notées fonctionnent parfaitement (un peu vieux mais qui fonctionne toujours), mais je tiens à mentionner que depuis Android N Nous pouvons tous configurer vos applications afin d'avoir des certificats SSL diff trust (pour la libération , debug seulement et ainsi de suite), y compris le certificat Proxy Charles SSL (si vous téléchargez le certificat Charles et mettez .fichier pem dans votre raw dossier). Plus d'informations peuvent être trouvées ici: https://developer.android.com/training/articles/security-config.html
aussi la documentation officielle de Charles peut être utile pour configurer ceci : https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/
espérons que cela aidera à configurer Charles à l'intérieur de votre projet app pas sur chaque appareil Android simple.
j'ai compris le problème. C'est parce que Charles 3.7 a quelques bugs pour les appareils Android. J'ai mis à jour vers la version Beta de Charles 3.8 et semble fonctionner très bien pour moi.
pour le nouvel émulateur il pourrait être utile de lancer depuis la ligne de commande en utilisant:
emulator -netdelay none -netspeed full -avd <emulator_name> -http-proxy http://<ip-address>:8888
assurez-vous de suivre les conseils de @User9527 ci-dessus aussi bien pour le reste de la configuration
pour moi, le problème était l'adresse IP vers laquelle charles me disait de me diriger dans Mes paramètres de proxy était incorrecte. Pour résoudre j'ai fini par aller à ifconfig
dans le terminal et l'essai des différentes adresses IP (énumérés à côté de inet
) au port 8888
pour les connexions actuelles actives