Charles Proxy — τι είναι, ρύθμιση και υποκλοπή κινήσεων HTTPS

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-05-08 Χρόνος ανάγνωσης: 8 λεπ

Το Charles Proxy είναι ένας cross-platform διακομιστής μεσολάβησης για αποσφαλμάτωση κίνησης HTTP/HTTPS, που χρησιμοποιείται από προγραμματιστές για υποκλοπή, προβολή και τροποποίηση αιτημάτων δικτύου. Σύμφωνα με τον Karl von Randow, δημιουργό του εργαλείου (2025), το Charles χρησιμοποιείται σε περισσότερες από 50.000 εταιρείες παγκοσμίως από το 2004. Το Proxy υποστηρίζει υποκλοπή κίνησης από κινητές συσκευές μέσω WiFi, HTTPS διαμεσολάβηση με εγκατάσταση ριζικού πιστοποιητικού και ένα ευρύ σύνολο εργαλείων για ανάλυση API.

Βασικά Σημεία

  • Charles Proxy — ένας διακομιστής μεσολάβησης HTTP/HTTPS για υποκλοπή και ανάλυση κίνησης δικτύου με προηγμένες δυνατότητες αποσφαλμάτωσης
  • HTTPS διαμεσολάβηση υλοποιείται μέσω εγκατάστασης του ριζικού πιστοποιητικού Charles στη συσκευή, επιτρέποντας την προβολή κρυπτογραφημένης κίνησης
  • Rewrite και Breakpoints — ισχυρά εργαλεία για τροποποίηση αιτημάτων και απαντήσεων εν κινήσει χωρίς αλλαγή κώδικα διακομιστή ή πελάτη
  • Map Local και Map Remote επιτρέπουν την αντικατάσταση πόρων δικτύου με τοπικά αρχεία ή εναλλακτικούς διακομιστές για δοκιμές
  • Throttle — προσομοίωση αργών και ασταθών συνδέσεων δικτύου για έλεγχο συμπεριφοράς εφαρμογής σε συνθήκες κακής συνδεσιμότητας

Τι είναι το Charles Proxy;

Charles Proxy — είναι ένα HTTP proxy και HTTP monitor που λειτουργεί ως ενδιάμεσος μεταξύ πελάτη και διακομιστή. Όλα τα αιτήματα και οι απαντήσεις περνούν μέσω του Charles, επιτρέποντας την προβολή του περιεχομένου τους, την ανάλυση δομής, την τροποποίηση δεδομένων σε πραγματικό χρόνο και την προσομοίωση διαφόρων συνθηκών δικτύου. Διαθέσιμο για Windows, macOS και Linux.

Ιστορία και τοποθέτηση

Το Charles Proxy δημιουργήθηκε το 2004 από τον Karl von Randow και παραμένει ένα από τα πιο δημοφιλή εργαλεία για αποσφαλμάτωση κίνησης δικτύου. Σε αντίθεση με τις δωρεάν εναλλακτικές, το Charles προσφέρει πληρωμένη άδεια με 30ήμερη δοκιμαστική περίοδο. Το εργαλείο τοποθετείται ως επαγγελματική λύση για προγραμματιστές κινητών εφαρμογών, web developers και μηχανικούς QA που χρειάζονται πλήρη έλεγχο επί των επικοινωνιών HTTP.

Συμβατότητα πλατφορμών

Το Charles λειτουργεί ως system proxy στον υπολογιστή και μπορεί να υποκλέπτει κίνηση από οποιεσδήποτε συσκευές στο ίδιο δίκτυο: Android, iOS, προσομοιωτές, εξομοιωτές, προγράμματα περιήγησης και συσκευές IoT. Για υποκλοπή HTTPS, πρέπει να εγκαταστήσετε το ριζικό πιστοποιητικό Charles σε κάθε συσκευή. Η κίνηση υποστηρίζεται σε HTTP/1.1 και HTTP/2 (μερικώς). Το HTTP/3 (QUIC) δεν υποστηρίζεται σε επίπεδο υποκλοπής.

Πώς λειτουργεί το Charles Proxy

Το Charles λειτουργεί με βάση την αρχή του MITM (Man-in-the-Middle) proxy: όταν ένας πελάτης στέλνει ένα αίτημα μέσω Charles, το εργαλείο υποκλέπτει αυτό το αίτημα, το προωθεί στον διακομιστή προορισμού, λαμβάνει την απάντηση και την επιστρέφει στον πελάτη. Όλη η κίνηση περνά μέσω Charles, επιτρέποντας την ανάλυση και τροποποίησή της.

Αρχιτεκτονική διαμεσολάβησης

Κατά την εκκίνηση, το Charles δημιουργεί ένα τοπικό HTTP proxy στη θύρα 8888 (προεπιλογή). Το λειτουργικό σύστημα ή η εφαρμογή ρυθμίζεται να χρησιμοποιεί αυτό το proxy. Όλα τα HTTP αιτήματα αποστέλλονται πρώτα στο Charles, το οποίο στη συνέχεια λειτουργεί ως πλήρης πελάτης για τον διακομιστή προορισμού. Για HTTPS, το Charles χρησιμοποιεί τη δική του τεχνική SSL-proxy: δημιουργεί ένα πιστοποιητικό εν κινήσει για κάθε τομέα, υπογεγραμμένο από το ριζικό πιστοποιητικό Charles. Εάν το ριζικό πιστοποιητικό είναι εγκατεστημένο ως αξιόπιστο στη συσκευή, το Charles μπορεί να αποκρυπτογραφήσει και να δει την κίνηση HTTPS.

Λειτουργίες εργασίας

Το Charles υποστηρίζει δύο λειτουργίες: Proxy (κλασικός διακομιστής μεσολάβησης) και SOCKS Proxy (για κίνηση UDP και TCP). Για ανάπτυξη ιστού, χρησιμοποιείται το τυπικό HTTP-proxy. Για κινητές συσκευές — ρύθμιση WiFi Proxy στη συσκευή με καθορισμό της διεύθυνσης IP του υπολογιστή που εκτελεί το Charles. Το MacOS υποστηρίζει αυτόματη ρύθμιση proxy για τον προσομοιωτή iOS.

xml
<!-- Ρύθμιση network_security_config.xml για Android με υποστήριξη Charles -->
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <debug-overrides>
        <trust-anchors>
            <!-- Εμπιστευτείτε το πιστοποιητικό Charles σε έκδοση Debug -->
            <certificates src="user" />
        </trust-anchors>
    </debug-overrides>
</network-security-config>

Βασικές δυνατότητες του Charles Proxy

Το Charles Proxy παρέχει ένα σύνολο επαγγελματικών εργαλείων για ανάλυση και τροποποίηση κίνησης που ξεπερνά κατά πολύ την απλή υποκλοπή αιτημάτων.

Rewrite και Breakpoints

Το εργαλείο Rewrite επιτρέπει την αυτόματη τροποποίηση ορισμένων τμημάτων αιτημάτων ή απαντήσεων: κεφαλίδες, παραμέτρους URL, σώμα απάντησης. Για παράδειγμα, μπορείτε να αντικαταστήσετε την κεφαλίδα User-Agent με μια τιμή από άλλη συσκευή ή να αφαιρέσετε συγκεκριμένα cookies. Τα Breakpoints λειτουργούν σαν διορθωτής: το αίτημα σταματά στο επιλεγμένο στάδιο (πριν από την αποστολή ή πριν από τη λήψη) και ο προγραμματιστής μπορεί να τροποποιήσει χειροκίνητα το περιεχόμενό του προτού προχωρήσει. Αυτό είναι χρήσιμο για τη δοκιμή χειρισμού αποκρίσεων σφαλμάτων ή μη τυπικών καταστάσεων.

Map Local και Map Remote

Map Local επιτρέπει την αντικατάσταση ενός πόρου δικτύου (CSS, JS, JSON) με ένα τοπικό αρχείο από τον δίσκο. Αυτό είναι απαραίτητο στην ανάπτυξη frontend: μπορείτε να τροποποιήσετε CSS/JS και να δείτε αμέσως το αποτέλεσμα χωρίς ανάπτυξη σε διακομιστή. Map Remote ανακατευθύνει αιτήματα από ένα URL σε άλλο — για παράδειγμα, από τον διακομιστή παραγωγής στο staging για δοκιμή. Και τα δύο εργαλεία λειτουργούν με μοτίβα URL που υποστηρίζουν wildcards.

Throttle και προσομοίωση συνθηκών δικτύου

Το εργαλείο Throttle επιτρέπει την προσομοίωση διαφόρων τύπων συνδέσεων δικτύου βάσει προκαθορισμένων προφίλ: 3G, EDGE, GPRS, DSL, WiFi. Μπορείτε να ρυθμίσετε όρια ταχύτητας (λήψη/μεταφόρτωση), καθυστέρηση, απώλεια πακέτων και σταθερότητα. Αυτό είναι κρίσιμο για τη δοκιμή συμπεριφοράς εφαρμογής σε αργή ή ασταθή σύνδεση — σωστός χειρισμός χρονικών ορίων, επαναλήψεις, λειτουργία εκτός σύνδεσης.

ΠροφίλΛήψηΜεταφόρτωσηΚαθυστέρησηΤυπικό σενάριο
3G780 kbps330 kbps200 msΔοκιμή με ασθενές σήμα κινητού
EDGE130 kbps50 kbps400 msΕξαιρετικά αργή σύνδεση
GPRS50 kbps20 kbps500 msΕλάχιστη δυνατή σύνδεση
DSL2 Mbps256 kbps50 msΟικιακή ενσύρματη σύνδεση
WiFi10 Mbps10 Mbps10 msΚαλή σύνδεση WiFi

Auto Save και Recording

Το Charles μπορεί να αποθηκεύει αυτόματα συνεδρίες κίνησης σε αρχεία .chls, επιτρέποντας μεταγενέστερη ανάλυση ή κοινή χρήση με συναδέλφους. Το Recording Control επιτρέπει ευέλικτη ρύθμιση του ποια κίνηση θα αποθηκεύεται: ανά τομέα, τύπο περιεχομένου, κωδικό κατάστασης. Αυτό είναι βολικό για μακροπρόθεσμη παρακολούθηση API.

Ρύθμιση Charles Proxy για κινητές συσκευές

Για αποσφαλμάτωση κίνησης εφαρμογών κινητού, το Charles ρυθμίζεται ως WiFi Proxy: όλες οι συσκευές στο ίδιο δίκτυο με τον υπολογιστή μπορούν να δρομολογούν κίνηση μέσω Charles. Η σωστή ρύθμιση HTTPS απαιτεί εγκατάσταση του πιστοποιητικού Charles στην κινητή συσκευή.

Ρύθμιση σε Android

Για Android: ανοίξτε Ρυθμίσεις → WiFi → Για προχωρημένους → Proxy, επιλέξτε Μη αυτόματα και εισαγάγετε τη διεύθυνση IP του υπολογιστή με θύρα 8888. Στη συνέχεια, ανοίξτε το πρόγραμμα περιήγησης στη συσκευή και μεταβείτε στη διεύθυνση http://chls.pro/ssl για λήψη του πιστοποιητικού Charles. Σε Android 7+ (API 24+) απαιτείται network_security_config.xml για εμπιστοσύνη σε πιστοποιητικά χρήστη σε έκδοση Debug — διαφορετικά, η εφαρμογή μπορεί να μην δρομολογεί κίνηση μέσω Charles.

Ρύθμιση σε iOS

Για iOS: Ρυθμίσεις → WiFi → ρύθμιση proxy στη διεύθυνση IP και θύρα 8888. Στη συνέχεια Safari → http://chls.pro/ssl → εγκατάσταση προφίλ πιστοποιητικού. Σε iOS 10.3+ πρέπει να ενεργοποιήσετε την εμπιστοσύνη πιστοποιητικού: Ρυθμίσεις → Γενικά → Πληροφορίες → Ρυθμίσεις εμπιστοσύνης πιστοποιητικών → ενεργοποίηση Charles Proxy. Το iOS είναι αυστηρότερο με τα πιστοποιητικά: ορισμένες εφαρμογές μπορεί να χρησιμοποιούν SSL Pinning, αποκλείοντας την κίνηση μέσω Charles ακόμη και με αξιόπιστο πιστοποιητικό.

Επίλυση προβλημάτων SSL Pinning

Εάν η εφαρμογή χρησιμοποιεί SSL Pinning (καθήλωση πιστοποιητικού διακομιστή), η τυπική διαμεσολάβηση μέσω Charles δεν θα λειτουργήσει — η εφαρμογή θα απορρίψει το πιστοποιητικό Charles. Λύσεις: απενεργοποιήστε το SSL Pinning στην έκδοση Debug μέσω ρυθμίσεων OkHttp ή URLSession, χρησιμοποιήστε Frida για παράκαμψη του pinning κατά τον χρόνο εκτέλεσης, ή χρησιμοποιήστε Android Emulator με πρόσβαση root.

Πρακτικά σενάρια χρήσης του Charles Proxy

Το Charles Proxy λύνει συγκεκριμένες εργασίες ανάπτυξης και δοκιμών. Ας εξετάσουμε τα πιο συνηθισμένα σενάρια όπου το εργαλείο είναι απαραίτητο.

Αποσφαλμάτωση ενσωμάτωσης API

Το πιο συνηθισμένο σενάριο — έλεγχος ορθότητας αιτημάτων API. Το Charles δείχνει το ακριβές URL του αιτήματος, κεφαλίδες, σώμα, παραμέτρους. Εάν ο διακομιστής επιστρέψει μια απροσδόκητη απάντηση, είναι άμεσα ορατά: η δομή JSON, ο κωδικός σφάλματος, οι κεφαλίδες απάντησης. Αυτό επιτρέπει τη διάκριση σφάλματος από την πλευρά του πελάτη από σφάλμα από την πλευρά του διακομιστή χωρίς αρχεία καταγραφής και από τις δύο πλευρές.

Δοκιμή με αργή σύνδεση

Χρησιμοποιώντας προφίλ Throttle, μπορείτε να ελέγξετε πώς συμπεριφέρεται η εφαρμογή σε χαμηλή ταχύτητα σύνδεσης: εάν εμφανίζεται η ένδειξη φόρτωσης, εάν το χρονικό όριο χειρίζεται σωστά, εάν το πάγωμα της διεπαφής κατά την απώλεια σύνδεσης. Η δοκιμή προσωρινής αποθήκευσης είναι ιδιαίτερα σημαντική — εάν τα δεδομένα έχουν ήδη φορτωθεί, η εφαρμογή πρέπει να τα εμφανίζει από την προσωρινή μνήμη, αντί να εισέρχεται σε ατελείωτη φόρτωση.

Επεξεργασία απαντήσεων διακομιστή

Με τα Breakpoints, μπορείτε να τροποποιήσετε την απάντηση του διακομιστή προτού σταλεί στην εφαρμογή. Για παράδειγμα, να επιστρέψετε έναν κενό πίνακα αντί για δεδομένα, να αλλάξετε τον κωδικό κατάστασης σε 500, να προσθέσετε ένα νέο πεδίο στο JSON. Αυτό επιτρέπει τη δοκιμή χειρισμού ακραίων περιπτώσεων χωρίς τροποποίηση κώδικα διακομιστή — μια από τις ισχυρότερες εφαρμογές του Charles στην ανάπτυξη κινητών.

Συχνές Ερωτήσεις

Είναι δωρεάν το Charles Proxy;

Το Charles Proxy είναι ένα εμπορικό προϊόν με 30ήμερη δοκιμαστική περίοδο. Μετά τη λήξη της δοκιμαστικής περιόδου, το πρόγραμμα συνεχίζει να λειτουργεί με διάλειμμα 30 λεπτών σε κάθε εκκίνηση. Το κόστος άδειας είναι 50$ ανά αντίγραφο. Υπάρχουν δωρεάν εναλλακτικές, όπως το Proxyman (macOS) και το mitmproxy (cross-platform).

Μπορώ να υποκλέψω κίνηση του προσομοιωτή iOS;

Ναι, ο προσομοιωτής iOS χρησιμοποιεί αυτόματα το system proxy του macOS. Απλώς εκκινήστε το Charles και ενεργοποιήστε το SSL-proxy — όλη η κίνηση του προσομοιωτή θα υποκλαπεί. Η ρύθμιση πιστοποιητικού για τον προσομοιωτή γίνεται αυτόματα, χρειάζεται μόνο να εμπιστευτείτε το πιστοποιητικό Charles στην αλυσίδα κλειδιών macOS.

Σε τι διαφέρει το Charles από το Proxyman;

Κύριες διαφορές: Το Charles είναι cross-platform (Windows, macOS, Linux), το Proxyman — μόνο macOS και iOS. Το Charles έχει ευρύτερο σύνολο εργαλείων (Rewrite, Map Local, Repeat, Auto Save) αλλά είναι επί πληρωμή. Το Proxyman είναι δωρεάν για βασική λειτουργικότητα, με σύγχρονη διεπαφή και εγγενή ενσωμάτωση με τον προσομοιωτή iOS.

Πώς επηρεάζει το Charles Proxy την απόδοση;

Το Charles προσθέτει καθυστέρηση όταν η κίνηση διέρχεται από το proxy, ειδικά με ενεργό SSL-proxy (αποκρυπτογράφηση/κρυπτογράφηση). Σε σύγχρονους υπολογιστές, η καθυστέρηση είναι 5–15 χιλιοστά του δευτερολέπτου ανά αίτημα. Για δοκιμές απόδοσης, συνιστάται η απενεργοποίηση του SSL-proxy για στατικούς πόρους (CSS, JS, εικόνες) μέσω του Recording Control.

Πώς εξάγω μια συνεδρία από το Charles;

Το Charles υποστηρίζει εξαγωγή σε μορφές: .chls (εγγενής, για εκ νέου άνοιγμα στο Charles), HAR (HTTP Archive, ανοίγει σε προγράμματα περιήγησης και άλλα εργαλεία), CSV (για επεξεργασία σε Excel ή υπολογιστικά φύλλα), Trace (για εξαγωγή συγκεκριμένου αιτήματος σε μορφή συμβατή με curl). Εξαγωγή μέσω του μενού File → Export Session.

Σύνοψη

  • Charles Proxy — ένας επαγγελματικός διακομιστής μεσολάβησης HTTP/HTTPS για υποκλοπή, προβολή και τροποποίηση κίνησης δικτύου από το 2004
  • Αρχή λειτουργίας — MITM proxy: όλα τα αιτήματα περνούν μέσω Charles, επιτρέποντας ανάλυση και τροποποίηση εν κινήσει
  • Ισχυρά εργαλεία: Rewrite, Breakpoints, Map Local, Map Remote, Throttle — για ολοκληρωμένη αποσφαλμάτωση API και δοκιμή εμπειρίας χρήστη
  • HTTPS διαμεσολάβηση απαιτεί εγκατάσταση του ριζικού πιστοποιητικού Charles στη συσκευή, και για Android 7+ — network_security_config.xml στην έκδοση Debug
  • Προφίλ Throttle επιτρέπουν προσομοίωση 3G, EDGE, DSL και άλλων τύπων συνδέσεων για δοκιμή συμπεριφοράς εφαρμογής σε πραγματικές συνθήκες
  • Εξαγωγή συνεδριών σε μορφές HAR, CSV και .chls για ανάλυση, αναφορά και κοινή χρήση με την ομάδα
  • Για έργα με περιορισμένο προϋπολογισμό, εξετάστε δωρεάν εναλλακτικές: Proxyman (macOS) ή mitmproxy (cross-platform ανοιχτού κώδικα)

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης