web-dev-qa-db-de.com

Wie konfiguriere ich SSL-Zertifikate mit Charles Web Proxy und dem neuesten Android Emulator unter Windows?

Ich möchte Charles Web Proxy verwenden, um mit dem Android-Emulator in Windows zu arbeiten. Ich habe Charles erfolgreich eingerichtet und den Emulator mit der Befehlszeile gestartet:

emulator -http-proxy 127.0.0.1:8888 @NexusOne

Ich kann den Datenverkehr des Android-Emulators in Charles sehen, aber das Problem ist, dass ich gegen eine Live-API arbeite, die SSL verwendet, und ich bin nicht sicher, wie ich Charles so konfigurieren muss, dass ich mit den gesendeten Daten spielen kann empfangen. Ich kenne zwei Bereiche, in denen SSL in Charles eingerichtet ist (Proxy -> Proxy-Einstellungen -> SSL und Proxy -> Client-SSL-Zertifikate), aber ich kann keine anständige Dokumentation finden, durch die ich tun kann, was ich möchte . Hat jemand Erfahrung mit Charles oder Zertifikaten im Allgemeinen, wer erklären kann, wie man das erreichen kann. Vielleicht wäre auch eine Einführung in Zertifikate gut, da mir anscheinend das Wissen fehlt, warum dies so schwierig ist.

57
Martyn

Gehen Sie in Charles zu Proxy >> Proxy-Einstellungen und wählen Sie die Registerkarte SSL. Fügen Sie Ihren Host der Liste der Standorte hinzu. 

Wenn Ihr sicherer Anruf beispielsweise nach https://secure.example.com geht, können Sie secure.example.com oder * .example.com eingeben.

Wenn der oben genannte Vorgang ausgeführt wurde, müssen Sie möglicherweise im Hauptfenster von Charles mit der rechten Maustaste auf den Anruf klicken und die Option SSL-Proxying auswählen.

Hoffe das hilft.

48
bcj19

Um den HTTP- oder https-Verkehr mit Charles remote zu erfassen, müssen Sie Folgendes tun:

Host - Computer, auf dem Charles ausgeführt wird und der Proxy gehostet wird CLIENT - Der Computer des Benutzers, der den Datenverkehr generiert, den Sie erfassen werden

Hostmaschine

  1. Installieren Sie eine vollständig lizenzierte Version von Charles
  2. Proxy -> Proxy-Einstellungen -> Aktivieren Sie "Transparente HTTP-Proxying aktivieren".
  3. Proxy -> SSL-Proxy-Einstellungen -> "SSL-Proxy aktivieren" aktivieren
  4. Proxy -> SSL-Proxy-Einstellungen -> Klicken Sie auf die Schaltfläche Hinzufügen und geben Sie * in beide Felder ein
  5. Proxy -> Einstellungen für die Zugriffskontrolle -> Fügen Sie Ihr lokales Subnetz (Beispiel: 192.168.2.0/24) hinzu, um alle Computer in Ihrem lokalen Netzwerk für die Verwendung des Proxys von einem anderen Computer zu autorisieren
  6. Es kann ratsam sein, das "Auto-Save-Tool" in Charles einzurichten. Dadurch werden die Charles-Protokolle automatisch gespeichert und gedreht. 

Client-Rechner:

  1. Installieren Sie das Charles SSL-Zertifikat und akzeptieren Sie es dauerhaft
    http://www.charlesproxy.com/documentation/using-charles/ssl-certificates/
  2. Konfigurieren Sie IE, Firefox und Chrome für die Verwendung des Sockets, auf dem charles den Proxy hostet (Beispiel: 192.168.1.100:8888).

Als ich das getestet habe, habe ich zwei Zeilen eines HTTPS-Chat von Facebook gefunden (eine war eine Zeile mit jemandem und die andere FROM).

sie können den Android-Emulatorverkehr auch auf diese Weise erfassen, wenn Sie den Emulator mit folgendem Befehl starten:

emulator -avd <avd name> -http-proxy http://local_ip:8888/

Dabei ist LOCAL_IP die IP-Adresse Ihres Computers und nicht 127.0.0.1, da dies die IP-Adresse des emulierten Telefons ist.

Quelle: http://brakertech.com/capture-https-traffic-remotely-with-charles/

66
brakertech

Was es wert ist, ist die Schritt-für-Schritt-Anleitung, um dies auf einem Android-Gerät zu tun. Sollte für iOS gleich sein:

  1. Öffnen Sie Charles
  2. Gehen Sie zu Proxy> Proxy-Einstellungen> SSL
  3. Aktivieren Sie "SSL-Proxy aktivieren".
  4. Wählen Sie "Ort hinzufügen" und geben Sie den Hostnamen und den Port ein (falls erforderlich).
  5. Klicken Sie auf OK und stellen Sie sicher, dass die Option aktiviert ist
  6. Laden Sie das Charles-Zertifikat von hier herunter: Charles-Zertifikat>
  7. Senden Sie diese Datei per E-Mail an sich.
  8. Öffnen Sie die E-Mail auf Ihrem Gerät und wählen Sie das Zertifikat aus
  9. Geben Sie unter "Name des Zertifikats" ein, was Sie möchten
  10. Klicken Sie auf OK und Sie sollten eine Meldung erhalten, dass das Zertifikat installiert wurde

Sie sollten dann die SSL-Dateien in Charles sehen können. Wenn Sie die Werte abfangen und ändern möchten, können Sie das Tool "Map Local" verwenden, das wirklich großartig ist:

  1. In Charles gehen Sie auf Tools> Map Local 
  2. Wählen Sie "Eintrag hinzufügen"
  3. Geben Sie die Werte für die Datei ein, die Sie ersetzen möchten
  4. Wählen Sie unter "Lokaler Pfad" die Datei aus, die stattdessen von der App geladen werden soll
  5. OK klicken
  6. Stellen Sie sicher, dass der Eintrag ausgewählt ist, und klicken Sie auf OK
  7. Führen Sie Ihre App aus
  8. Sie sollten in "Notizen" sehen, dass Ihre Datei anstelle der Live-Datei geladen wird
25
bkurzius

Die Art und Weise, wie Charles HTTPS-Proxying bietet, hat sich ein wenig geändert. 

Zuerst wurden die Installationsoptionen für Zertifikate in das Hilfemenü verschoben.

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

 Charles SSL Proxying

Zweitens müssen Sie ab iOS 9 eine NSAppTransportSecurity-Option in Ihrem Info.plist angeben. Wenn Sie möchten, dass Charles als Mann in der Mitte ordnungsgemäß funktioniert, müssen Sie Folgendes hinzufügen: 

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

als Teil Ihrer Domains siehe vollständiges Beispiel:

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

Der Grund ist (denke ich), dass Charles irgendwann in klarem http kommuniziert, nachdem er als der Mann im mittleren https-Server fungiert hat.

Als letzten Schritt aktivieren Sie SSL-Proxy für diese Domäne in Charles (klicken Sie mit der rechten Maustaste auf die Domäne und wählen Sie SSL-Proxy aktivieren aus.)

 enable HTTP Proxying

20
apouche

Was für mich funktioniert hat - sollte eigentlich auf das iPhone verschoben werden:

Charles

  1. Aktivieren Sie das transparente HTTP-Proxying
  2. Aktivieren Sie SSL-Proxy
  3. Klicken Sie mit der rechten Maustaste auf die eingehende Anfrage und wählen Sie SSL-Proxy aus

Mac

  1. Laden Sie das Charles CA-Zertifikatspaket herunter http://www.charlesproxy.com/ssl.Zip
  2. Mailen Sie sich selbst charles-proxy-ssl-proxying-certificate.crt

iPhone

  1. Aktivieren Sie den HTTP-Proxy für Charles an Port 8888
  2. E-Mail-Anhang auswählen und installieren, ja vertrauen!

Voila, Sie können jetzt den verschlüsselten Datenverkehr von der Domäne anzeigen, die im SSL-Proxy hinzugefügt wurde

7
gini

Sie sollten auch im Charles-Hilfe-Menü auf "Charles CA SSL-Zertifikate installieren" klicken. Detaillierte Anweisungen finden Sie unter http://blog.noodlewerk.com/general/tutorial-using-charles-proxy-to-debug-https-communication-between-server-and-ios-apps/ .

6
Vineet Bhatia

Diese Dinge haben mir geholfen 

  1. Gehen Sie zu Proxy -> SSL-Proxy-Einstellungen -> Hinzufügen
  2. Fügen Sie hier Ihren Site-Namen hinzu und geben Sie als Portnummer 8888 an

enter image description here enter image description here

  1. Klicken Sie mit der rechten Maustaste auf Ihren Site-Namen im linken Bereich und wählen Sie "Aktivieren SSL-Proxying" enter image description here

Hoffe, das hilft jemandem da draußen.

0
iPhoneDeveloper