Torna al blog

Charles Proxy per il debug delle app mobili: guida completa per l'intercettazione del traffico e l'analisi di HTTP/HTTPS

Charles Proxy è uno strumento potente per l'intercettazione e l'analisi del traffico HTTP/HTTPS delle applicazioni mobili. Scopri come configurarlo per il debug, il testing e l'uso con i proxy.

📅5 agosto 2026
```html

Avviate un'applicazione e si comporta in modo imprevedibile: i dati non si caricano, la pubblicità non viene visualizzata, l'account viene bloccato senza motivo apparente. Per capire cosa succede "sotto il cofano", è necessario vedere le vere richieste HTTP tra l'applicazione e il server. È proprio per questo che esiste Charles Proxy: uno strumento che consente di intercettare, analizzare e sostituire il traffico delle applicazioni mobili in tempo reale.

In questa guida esamineremo la configurazione completa di Charles Proxy per iOS e Android, il lavoro con HTTPS, la sostituzione delle risposte del server e l'integrazione con server proxy esterni — tutto questo senza teoria superflua, solo pratica.

Che cos'è Charles Proxy e a cosa serve

Charles Proxy è un'applicazione desktop per Windows, macOS e Linux che funge da proxy HTTP/HTTPS tra il tuo dispositivo (smartphone, emulatore) e Internet. Quando reindirizzi il traffico attraverso Charles, il programma registra tutte le richieste e le risposte, permettendoti di vedere ogni byte di dati che l'applicazione invia ai server.

In sostanza, Charles fa la stessa cosa degli strumenti DevTools nel browser Chrome — solo per le applicazioni mobili che non hanno un ispettore integrato. Questo è particolarmente importante quando è necessario capire:

  • Quali parametri l'applicazione invia durante l'autenticazione o la registrazione dell'account
  • Quali intestazioni (User-Agent, Device-ID, token) vengono inviate al server
  • Come Facebook, TikTok o Instagram verificano il dispositivo durante l'accesso
  • Perché l'applicazione restituisce un errore in determinate condizioni
  • Quali dati il marketplace invia quando richiede prezzi o cataloghi

Per gli arbitraggisti, Charles Proxy è uno strumento di intelligence: puoi letteralmente vedere quali dati di fingerprint Facebook Ads raccoglie dal dispositivo e capire perché l'account viene bloccato subito dopo l'accesso. Gli specialisti SMM utilizzano Charles per analizzare l'API di Instagram e TikTok, per capire i limiti e i modelli delle richieste. Gli sviluppatori e i tester lo utilizzano per simulare le risposte del server e verificare il comportamento dell'applicazione in situazioni non standard.

Funzionalità chiave di Charles Proxy:

  • Intercettazione del traffico HTTP e HTTPS (incluso TLS 1.3)
  • Visualizzazione del corpo delle richieste e delle risposte in un formato conveniente (JSON, XML, testo)
  • Sostituzione delle risposte del server (Rewrite, Map Local, Map Remote)
  • Punti di interruzione (Breakpoints) per la modifica manuale delle richieste
  • Rallentamento della connessione per simulare una connessione lenta
  • Registrazione e riproduzione delle sessioni
  • Supporto per proxy esterni (HTTP, SOCKS5)

Installazione e configurazione iniziale di Charles Proxy

Charles Proxy è distribuito come applicazione a pagamento con un periodo di prova di 30 giorni. Puoi scaricarlo dal sito ufficiale charlesproxy.com. La versione per macOS, Windows e Linux è la stessa in termini di funzionalità.

Passo 1. Installazione dell'applicazione

Scarica il programma di installazione per il tuo sistema operativo, avvialo e segui la procedura di installazione standard. Dopo l'avvio, Charles inizia immediatamente ad ascoltare la porta 8888 sul tuo computer. Questa è la porta predefinita attraverso cui i dispositivi reindirizzeranno il traffico.

Passo 2. Verifica dell'indirizzo IP del computer

Affinché il dispositivo mobile possa connettersi a Charles, deve trovarsi nella stessa rete Wi-Fi del computer. Scopri l'indirizzo IP del tuo computer nella rete locale:

  • macOS: Preferenze di Sistema → Rete → seleziona Wi-Fi → Indirizzo IP
  • Windows: Prompt dei comandi → ipconfig → Indirizzo IPv4
  • In Charles stesso: Aiuto → Indirizzo IP locale

Ricorda questo indirizzo — sarà necessario durante la configurazione del proxy sullo smartphone. Di solito è qualcosa come 192.168.1.X.

Passo 3. Autorizzazione delle connessioni dai dispositivi

Alla prima connessione del dispositivo mobile, Charles mostrerà una finestra di dialogo con la domanda: "Consentire la connessione dall'IP xxx.xxx.x.x?". Clicca su Consenti. Se la finestra non appare, verifica che il firewall di Windows o macOS non stia bloccando Charles. Su macOS potrebbe essere necessario autorizzare esplicitamente le connessioni in Preferenze di Sistema → Sicurezza → Firewall.

Configurazione di Charles Proxy per Android

La configurazione su Android consiste in due parti: reindirizzare il traffico attraverso Charles e installare il certificato per decrittografare HTTPS. Senza il certificato vedrai solo dati crittografati — un insieme inutile di caratteri.

Configurazione del proxy Wi-Fi su Android

  1. Apri Impostazioni → Wi-Fi
  2. Tieni premuta la rete connessa → Modifica rete
  3. Attiva Opzioni avanzate
  4. Nella sezione Proxy seleziona Manuale
  5. Host proxy: indirizzo IP del tuo computer (ad esempio, 192.168.1.5)
  6. Porta: 8888
  7. Salva le impostazioni

Dopo questo, tutto il traffico HTTP dal dispositivo passerà attraverso Charles. Sullo schermo dell'applicazione inizieranno a comparire le registrazioni delle richieste.

Installazione del certificato Charles su Android

  1. Sul dispositivo apri il browser e vai all'indirizzo chls.pro/ssl
  2. Si scaricherà un file di certificato .pem
  3. Apri Impostazioni → Sicurezza → Installazione certificato
  4. Seleziona il file scaricato e installalo come Certificato CA
  5. Assegna un nome a piacere, ad esempio "Charles SSL"

Su Android 7 e versioni successive, le applicazioni per impostazione predefinita non si fidano dei certificati personalizzati. Ciò significa che le applicazioni di sistema e la maggior parte delle applicazioni di terze parti (Facebook, Instagram, TikTok) bloccheranno l'intercettazione. Per lavorare con tali applicazioni sarà necessario avere accesso root o utilizzare un emulatore Android (ad esempio, Genymotion o Android Studio Emulator) con la possibilità di installare il certificato nel keystore di sistema.

⚠️ Importante per Android 7+

A partire da Android 7 (Nougat), le applicazioni devono dichiarare esplicitamente la fiducia nei certificati personalizzati nel file network_security_config.xml. La maggior parte delle applicazioni popolari (Facebook Ads, Instagram) non lo fa. Per la loro analisi, utilizza un emulatore con root o una build modificata di Android.

Configurazione di Charles Proxy per iOS

Su iOS la procedura è un po' più semplice: Apple fornisce un meccanismo standard per l'installazione dei certificati tramite profili, e la maggior parte delle applicazioni rispetta le impostazioni di sistema del proxy.

Configurazione del proxy Wi-Fi su iPhone/iPad

  1. Apri Impostazioni → Wi-Fi
  2. Premi sull'icona (i) accanto alla rete connessa
  3. Scorri verso il basso fino alla sezione Proxy HTTP
  4. Seleziona Manuale
  5. Server: indirizzo IP del computer con Charles
  6. Porta: 8888
  7. Autenticazione: disattivata (se non configurata in Charles)

Installazione del certificato Charles su iOS

  1. Su iPhone apri il browser Safari e vai su chls.pro/ssl
  2. Safari offrirà di installare un profilo di configurazione — premi Consenti
  3. Vai su Impostazioni → Generali → VPN e gestione dispositivo
  4. Trova il profilo Charles e premi Installa
  5. Inserisci il PIN del dispositivo se necessario
  6. Ora vai su Impostazioni → Generali → Informazioni su questo dispositivo → Fiducia nei certificati
  7. Attiva l'interruttore accanto a Charles Proxy CA

Dopo questo, Charles sarà in grado di decrittografare il traffico HTTPS della maggior parte delle applicazioni iOS. Le eccezioni sono le applicazioni con Certificate Pinning attivato — ad esempio, le applicazioni bancarie e alcune versioni di Instagram. Per la loro analisi sarà necessario il jailbreak e tweak speciali come SSL Kill Switch.

Intercettazione del traffico HTTPS: configurazione di SSL Proxying

Anche dopo l'installazione del certificato, Charles per impostazione predefinita non decrittografa il traffico HTTPS — è necessario specificare esplicitamente per quali domini abilitare SSL Proxying. Questo è stato fatto intenzionalmente per non sovraccaricare l'interfaccia con dati superflui.

Come abilitare SSL Proxying

  1. Nel menu di Charles, seleziona Proxy → Impostazioni SSL Proxying
  2. Spunta Abilita SSL Proxying
  3. Clicca su Aggiungi nella sezione Include
  4. Nella casella Host inserisci * (asterisco = tutti i domini)
  5. Nella casella Porta inserisci 443
  6. Clicca OK e riavvia l'intercettazione

Ora Charles decrittograferà il traffico HTTPS per tutti i domini. Se sei interessato a un servizio specifico, specifica il suo dominio invece dell'asterisco. Ad esempio, per analizzare Instagram inserisci *.instagram.com, per Facebook — *.facebook.com.

Cosa si vede dopo aver abilitato SSL Proxying

Nella barra laterale sinistra di Charles vedrai un albero di domini. Clicca su qualsiasi richiesta — nella parte destra si aprirà un dettagliato: URL, metodo (GET/POST), intestazioni della richiesta, corpo della richiesta (se presente) e risposta del server. Le schede Richiesta e Risposta mostrano i dati in forma grezza o in un formato formattato conveniente (JSON, XML, HTML).

Le intestazioni della richiesta sono particolarmente preziose — è proprio lì che vengono trasmessi i token di autorizzazione, gli identificatori del dispositivo, la versione dell'applicazione e altri dati che le piattaforme utilizzano per la verifica. Se vedi parametri sospetti nelle richieste a Facebook Ads o TikTok — questo è il primo passo per capire perché l'account viene bloccato.

Strumenti di analisi: Breakpoints, Rewrite e Map Local

Charles non è solo un visualizzatore di traffico, ma anche uno strumento potente per la sua modifica. Tre strumenti chiave che vengono utilizzati più frequentemente:

Breakpoints — punti di interruzione

I Breakpoints consentono di intercettare una richiesta o una risposta nel momento in cui passa e modificare manualmente i dati prima che arrivino al destinatario. Questo è uno strumento potente per il testing: puoi modificare i parametri della richiesta, sostituire un token o modificare la risposta del server.

Per impostare un Breakpoint: clicca con il tasto destro sulla richiesta nell'elenco → Breakpoint. Ora, alla prossima richiesta dell'applicazione a questo URL, Charles interromperà la trasmissione e aprirà una finestra di modifica. Puoi modificare qualsiasi parametro e premere Esegui per continuare.

Rewrite — sostituzione automatica dei dati

Rewrite funziona automaticamente: imposti una regola "se nella richiesta c'è X — sostituisci con Y", e Charles la applica a tutte le richieste pertinenti senza il tuo intervento. Questo è comodo per il testing di massa: ad esempio, sostituire il valore di un'intestazione specifica in tutte le richieste a un dominio specifico.

Configurazione: Strumenti → Rewrite → Aggiungi → imposta un nome per il set di regole → Aggiungi regola → specifica il tipo (Intestazione, Corpo, URL, ecc.), cosa cercare e con cosa sostituire.

Map Local — sostituzione della risposta con un file locale

Map Local consente di sostituire la risposta del server con il contenuto di un file locale. Questo è indispensabile per testare applicazioni senza un backend reale: crei un file JSON con i dati necessari e l'applicazione li riceve invece della vera risposta API.

Configurazione: Strumenti → Map Local → Aggiungi → specifica l'URL da intercettare e il percorso del file locale. Ora ogni richiesta a questo URL restituirà il contenuto del tuo file. Questo consente di testare casi limite: un elenco vuoto di prodotti, errore del server 500, formato di dati non standard.

Strumento Quando utilizzare Difficoltà
Breakpoints Modifica manuale una tantum della richiesta/risposta Bassa
Rewrite Sostituzione automatica secondo le regole Media
Map Local Sostituzione della risposta API con un file locale Bassa
Map Remote Reindirizzamento della richiesta a un altro server Media
Throttle Simulazione di una connessione lenta Bassa

Come collegare un server proxy esterno tramite Charles

Charles Proxy può funzionare non solo come intercettatore locale, ma anche come anello intermedio tra il dispositivo e un server proxy esterno. Questo è particolarmente utile quando è necessario analizzare il traffico e reindirizzarlo attraverso un indirizzo IP specifico — ad esempio, per verificare come si comporta l'applicazione quando è connessa da un altro paese o tramite un IP mobile.

Questo schema appare così: Smartphone → Charles Proxy (computer) → Server proxy esterno → Internet. Vedi tutto il traffico in Charles, ma le richieste vengono inviate attraverso l'IP desiderato.

Configurazione del proxy esterno in Charles

  1. Apri Proxy → Impostazioni Proxy Esterno
  2. Spunta Utilizza server proxy esterni
  3. Per il traffico HTTP: attiva Web Proxy (HTTP), inserisci l'host e la porta del proxy
  4. Per il traffico HTTPS: attiva Secure Web Proxy (HTTPS), inserisci gli stessi dati
  5. Se il proxy richiede autenticazione — inserisci nome utente e password
  6. Clicca OK

Charles supporta proxy HTTP e SOCKS5. Per SOCKS5 utilizza la scheda SOCKS Proxy nelle stesse impostazioni. Se stai lavorando con proxy residenziali con rotazione IP — ogni nuova richiesta passerà attraverso un indirizzo diverso, il che è comodo per testare il comportamento delle piattaforme al cambio di IP.

Eccezioni per il traffico locale

Se è necessario che parte del traffico vada direttamente (senza proxy esterno), aggiungi eccezioni nel campo Ignora i proxy esterni per i seguenti host. Ad esempio, gli indirizzi locali localhost e 127.0.0.1 dovrebbero generalmente essere esclusi per non interrompere i servizi locali.

Quando è necessario un proxy esterno in Charles:

  • Testing della geolocalizzazione dell'applicazione (come si comporta dagli Stati Uniti, Germania, Brasile)
  • Verifica della disponibilità dei contenuti in diverse regioni
  • Analisi delle richieste quando si utilizza proxy mobili — per capire come la piattaforma reagisce a un IP mobile
  • Bypass delle restrizioni regionali durante il testing

Casi pratici: arbitraggio, SMM e testing delle applicazioni

Esaminiamo compiti specifici per i quali Charles Proxy viene utilizzato nel lavoro reale — senza teoria superflua.

Scenario 1. Arbitraggio — analisi del fingerprint di Facebook Ads

Uno dei principali compiti di un arbitraggista è capire perché Facebook blocca gli account subito dopo l'accesso. Charles consente di intercettare le prime richieste dell'applicazione Facebook durante l'autenticazione e vedere quali dati sul dispositivo vengono inviati ai server Meta.

Nelle richieste a graph.facebook.com vedrai parametri come device_id, hardware_id, advertiser_id e altri identificatori. Questo aiuta a capire quali dati devono essere isolati nei browser anti-detect come Dolphin Anty o AdsPower quando si lavora con più account.

È anche utile intercettare la risposta del server in caso di blocco — di solito contiene un codice di errore e talvolta la ragione del blocco, che Facebook non mostra nell'interfaccia dell'applicazione.

Scenario 2. SMM — studio dell'API di Instagram e TikTok

Gli specialisti SMM che gestiscono 10-50 account clienti si trovano spesso di fronte ai limiti delle piattaforme: Instagram limita il numero di like, iscrizioni e commenti all'ora. Charles consente di misurare con precisione questi limiti, intercettando le richieste quando si lavora manualmente con l'account.

Intercettando le richieste a i.instagram.com, vedrai la struttura dell'API: endpoint, parametri, token di autorizzazione. Questo aiuta a configurare l'automazione in modo che imiti il comportamento di un utente reale e non venga bloccata. Funziona in modo simile con TikTok — analizzare le richieste a api16-normal-c-useast1a.tiktokv.com mostra quali parametri verifica la piattaforma.

Scenario 3. E-commerce — analisi dell'API dei marketplace

I venditori su Wildberries, Ozon e Avito utilizzano attivamente il monitoraggio dei prezzi dei concorrenti. Charles consente di intercettare le richieste dell'applicazione mobile del marketplace e vedere attraverso quali endpoint vengono caricati i dati sui prezzi e le giacenze. Questo aiuta a configurare un parser che imita il comportamento dell'applicazione mobile — tali richieste passano molto più facilmente rispetto alle richieste di un parser browser.

Ad esempio, nell'app Wildberries puoi intercettare le richieste a catalog.wb.ru e vedere la struttura esatta dei parametri di filtraggio e paginazione. Questo fornisce un modello pronto per costruire un parser che bypasserà la protezione in modo molto più efficace rispetto ai tentativi di riprodurre le richieste del browser. Per un parsing stabile, saranno necessari proxy di data center con alta velocità e stabilità di connessione.

Scenario 4. QA-testing delle applicazioni mobili

I tester utilizzano Charles per controllare il comportamento dell'applicazione in situazioni non standard. Con Map Local è possibile sostituire la risposta del server con un errore 500 e verificare come l'applicazione gestisce un guasto del backend. Throttle consente di simulare una connessione lenta (3G, Edge) e verificare se l'applicazione si blocca durante un lungo caricamento. I Breakpoints offrono la possibilità di modificare manualmente i dati e verificare i casi limite — ad esempio, cosa succede se il server restituisce un array vuoto invece di un elenco di prodotti.

Problemi comuni e loro risoluzione

Quando si lavora con Charles Proxy, i principianti si imbattono regolarmente negli stessi problemi. Esaminiamo i più comuni.

Problema 1: Charles mostra "unknown" invece del contenuto delle richieste HTTPS

Motivo: SSL Proxying non è abilitato o il certificato non è installato sul dispositivo.
Risoluzione: Verifica che in Proxy → Impostazioni SSL Proxying sia abilitato SSL Proxying e sia stato aggiunto l'host *:443. Assicurati che il certificato Charles sia installato sul dispositivo e che sia abilitata la fiducia completa (su iOS — tramite le impostazioni di fiducia nei certificati).

Problema 2: Il traffico non viene intercettato, l'elenco delle richieste è vuoto

Motivo: Il dispositivo non reindirizza il traffico attraverso Charles, oppure Charles non accetta connessioni.
Risoluzione: Verifica che il dispositivo e il computer siano sulla stessa rete Wi-Fi. Assicurati che nelle impostazioni del proxy sul dispositivo sia specificato l'IP corretto del computer e la porta 8888. Controlla che in Charles sia attivata l'intercettazione: Proxy → Inizia registrazione (o il pulsante con il punto rosso nella barra degli strumenti).

Problema 3: L'applicazione non funziona con Charles attivato

Motivo: L'applicazione utilizza il Certificate Pinning — verifica non solo la catena di fiducia, ma anche il certificato specifico del server. Il certificato di Charles non corrisponde a quello atteso.
Risoluzione per Android con root: Installa il modulo Magisk TrustUserCerts o utilizza Frida per bypassare il SSL Pinning. Per iOS con jailbreak — SSL Kill Switch 2. Senza root/jailbreak, bypassare il Certificate Pinning è estremamente difficile.

Problema 4: Charles intercetta troppo traffico, l'interfaccia è lenta

Motivo: Viene registrato tutto il traffico da tutte le applicazioni sul dispositivo, comprese le servizi di sistema.
Risoluzione: Utilizza la filtrazione. Nel campo Filtro (in basso nella barra laterale sinistra) inserisci il dominio del servizio di interesse. Oppure configura il Controllo Accesso in Proxy → Impostazioni Controllo Accesso, in modo che Charles accetti connessioni solo da applicazioni specifiche tramite Proxy → Impostazioni di registrazione → Includi/Escludi.

Problema 5: Internet non funziona dopo la chiusura di Charles

Motivo: Sul dispositivo mobile sono rimaste le impostazioni del proxy, ma Charles non è più in esecuzione — il traffico non ha dove andare.
Risoluzione: Rimuovi sempre le impostazioni del proxy sul dispositivo dopo aver terminato di lavorare con Charles. Ripristina l'impostazione del proxy su "Nessuno" o "Disattivato" nelle impostazioni Wi-Fi.

Problema Soluzione rapida
HTTPS mostra "unknown" Abilitare SSL Proxying + installare il certificato
Elenco delle richieste vuoto Controllare IP, porta e che Charles sia in modalità registrazione
L'applicazione non si apre Certificate Pinning — è necessario il root/jailbreak
L'interfaccia è lenta Aggiungere un filtro per dominio nel campo Filtro
Nessun internet dopo la chiusura Rimuovere le impostazioni del proxy sul dispositivo

Conclusione

Charles Proxy è uno degli strumenti più utili per chi lavora con le applicazioni mobili: sia che si tratti di un arbitraggista che desidera comprendere i meccanismi di verifica di Facebook Ads, di uno specialista SMM che studia l'API di Instagram, o di uno sviluppatore che testa il comportamento della propria applicazione in condizioni non standard. L'installazione richiede 15-20 minuti e le possibilità che si aprono dopo la configurazione sono difficili da sovrastimare.

La cosa principale da ricordare: Charles è uno strumento di analisi e debug, non di anonimizzazione. Per lavorare con più account, testare da diverse geolocalizzazioni o bypassare le restrizioni delle piattaforme è necessario un livello separato di protezione — server proxy con indirizzi IP reali.

Se stai analizzando il traffico delle applicazioni mobili per arbitraggio o gestione di account sui social media, ti consigliamo di combinare Charles con proxy residenziali — forniscono IP reali di utenti domestici, il che riduce al minimo il rischio di blocchi durante il testing e la gestione degli account. Per compiti in cui è importante alta velocità e stabilità — ad esempio, il parsing massivo delle API dei marketplace — sono adatti i proxy di data center con alta uptime.

```