Tworzysz lub testujesz aplikację mobilną i chcesz dokładnie wiedzieć, jakie zapytania wysyła na serwer i co otrzymuje w odpowiedzi? Ten przewodnik krok po kroku przeprowadzi Cię od zera do pełnej kontroli nad ruchem sieciowym Twojej własnej aplikacji. Omówimy najpopularniejsze narzędzia roku 2026, nauczymy się instalować zaufany certyfikat na telefonie, emulatorze i symulatorze, a także bezpiecznie omijać SSL pinning w kompilacjach debug przy użyciu standardowych mechanizmów.

Ważne od samego początku: wszystko, co opisano poniżej, dotyczy wyłącznie Twojej własnej aplikacji lub aplikacji, do której badania masz pisemną zgodę właściciela. To materiał dla inżynierów jakości i programistów, a nie instrukcja ingerencji w cudze programy. Omówimy to szczegółowo w sekcji o zasadach i etyce.

Wprowadzenie: po co programiście i testerowi widzieć ruch swojej aplikacji

Aplikacja mobilna komunikuje się z serwerem nieustannie: loguje się, pobiera katalog produktów, wysyła analitykę, synchronizuje dane. Dopóki wszystko działa, te zapytania pozostają niewidzialne. Ale gdy tylko coś się psuje, pytanie brzmi tak samo: co dokładnie poszło na serwer i co wróciło?

Umiejętność czytania ruchu własnej aplikacji rozwiązuje kilka zadań jednocześnie:

  • Sprawdzanie integracji. Widzisz dokładny format zapytań do swojego API, nagłówki, treść, kody odpowiedzi. Łatwo zrozumieć, kto jest winien błędu: klient czy backend.
  • Odtwarzanie błędów. Gdy tester zgłasza problem, możesz zobaczyć rzeczywistą sekwencję zapytań i powtórzyć scenariusz.
  • Audyt wycieków. Sprawdzasz, czy nie wyciekają niepotrzebne dane: tokeny w logach, dane osobowe w analityce, nadmiarowe pola.
  • Testowanie scenariuszy błędów. Możesz podmienić odpowiedź serwera i zobaczyć, jak aplikacja zachowa się przy błędzie 500 lub czasie oczekiwania.

Co otrzymasz w efekcie

Po przejściu przewodnika będziesz w stanie uruchomić lokalne proxy na komputerze, skierować przez niego ruch telefonu, odszyfrować chronione zapytania HTTPS, czytać je w wygodnym interfejsie, powtarzać i podmieniać odpowiedzi. Wszystko to dla swojej aplikacji.

Dla kogo jest ten przewodnik

Materiał napisano dla inżynierów QA, programistów mobilnych i specjalistów technicznych, którzy chcą zrozumieć warstwę sieciową swojej aplikacji. Poziom: dla początkujących, ale z elementami dla zaawansowanych.

Co trzeba wiedzieć wcześniej

Wystarczy podstawowe rozumienie, czym jest zapytanie HTTP, serwer i klient. Znajomość wiersza poleceń będzie zaletą, ale omówimy też narzędzia graficzne. Głęboka wiedza z kryptografii nie jest wymagana.

Ile czasu to zajmie

Pierwsza konfiguracja zajmie od jednej do dwóch godzin, wliczając instalację narzędzi i certyfikatów. Kolejne uruchomienia będą trwały kilka minut.

Przygotowanie wstępne: narzędzia, wymagania i co zainstalować

Zanim zanurzymy się w ruch, zbierzmy środowisko pracy. Omówimy cztery popularne narzędzia i wybierzemy odpowiednie dla Ciebie.

Porównanie narzędzi: mitmproxy, Charles, Proxyman i Burp

Każde z tych narzędzi potrafi działać jako MITM-proxy, czyli pośrednik między Twoją aplikacją a serwerem. Różnice dotyczą interfejsu, ceny i wygody.

  • mitmproxy. Darmowe i otwarte. Działa w terminalu, ale ma też interfejs webowy mitmweb. Idealne dla osób lubiących skrypty i automatyzację w Pythonie. Wieloplatformowe.
  • Charles. Płatne, z okresem próbnym. Klasyczny interfejs graficzny w Javie, działa na Windows, macOS i Linux. Bardzo popularne wśród mobilnych QA dzięki prostocie.
  • Proxyman. Nowoczesne narzędzie z ładnym interfejsem, pierwotnie dla macOS, dostępne także na Windows i Linux. Wygodna automatyczna konfiguracja certyfikatów.
  • Burp Suite. Narzędzie ze świata bezpieczeństwa. Potężne, dostępna darmowa wersja Community. Nieco przesadzone do prostego przeglądania ruchu, ale przydatne do zaawansowanej analizy.

Rada: Jeśli jesteś początkujący i chcesz szybko zobaczyć efekty, zacznij od Charles lub Proxyman. Jeśli lubisz terminal i automatyzację, zainstaluj mitmproxy. W tym przewodniku będziemy opierać się na mitmproxy i Charles jako najbardziej uniwersalnych opcjach.

Wymagania systemowe

  • Komputer z Windows, macOS lub Linux z uprawnieniami administratora.
  • Urządzenie mobilne lub emulator Android albo symulator iOS.
  • Wspólna sieć Wi-Fi dla telefonu i komputera albo skonfigurowany emulator.
  • Dostęp do kodu źródłowego Twojej aplikacji, aby zbudować wersję debug.

Co pobrać i zainstalować

  1. Pobierz wybrane narzędzie proxy z oficjalnej strony. Dla mitmproxy jest to instalator dla Twojego systemu lub pakiet przez menedżera pakietów.
  2. Zainstaluj narzędzie, postępując zgodnie ze standardowym kreatorem instalacji dla swojego systemu.
  3. Dla emulatora Android zainstaluj Android Studio z emulatorem i obrazem systemu bez usług Google, jeśli chcesz łatwo pracować z systemowym magazynem certyfikatów.
  4. Dla symulatora iOS na macOS zainstaluj Xcode z App Store.

⚠️ Uwaga: Pobieraj narzędzia wyłącznie z oficjalnych stron producentów. Programy proxy mają głęboki dostęp do ruchu, więc podróbki mogą być niebezpieczne. Sprawdzaj podpisy instalatorów, jeśli to możliwe.

Kopie zapasowe i przygotowanie urządzenia

Praca z certyfikatami i ustawieniami sieci jest zazwyczaj bezpieczna i odwracalna. Ale przed zmianami warto się zabezpieczyć.

  1. Zapisz aktualne ustawienia Wi-Fi telefonu, aby później móc je przywrócić.
  2. Używaj do eksperymentów osobnego urządzenia testowego lub profilu, a nie głównego telefonu służbowego.
  3. Jeśli pracujesz na urządzeniu służbowym, zapamiętaj, jakie certyfikaty instalujesz, aby usunąć je po debugowaniu.

✅ Sprawdzenie: Na tym etapie powinieneś mieć zainstalowane narzędzie proxy, gotowe urządzenie testowe lub emulator oraz dostęp do kompilacji swojej aplikacji.

Podstawowe pojęcia: jak działa MITM-proxy i po co potrzebny jest własny certyfikat

Aby pewnie iść dalej, wyjaśnijmy kluczowe terminy prostym językiem. To fundament, bez którego kolejne kroki będą wyglądały jak magia.

Czym jest MITM-proxy

MITM oznacza man-in-the-middle, czyli człowiek pośrodku. Proxy staje między Twoją aplikacją a serwerem. Aplikacja myśli, że rozmawia z serwerem, a serwer myśli, że rozmawia z aplikacją. W rzeczywistości obie strony komunikują się z proxy, które widzi i może pokazać cały ruch.

W przypadku zwykłego HTTP działa to od razu: dane są przesyłane jawnie. Jednak nowoczesne aplikacje używają HTTPS, gdzie ruch jest szyfrowany. Tu zaczyna się najciekawsze.

Co się dzieje podczas uzgadniania TLS

HTTPS opiera się na protokole TLS. Gdy aplikacja łączy się z serwerem, wykonują tzw. uzgadnianie. Serwer przedstawia swój certyfikat potwierdzający, że jest tym, za kogo się podaje. Aplikacja sprawdza ten certyfikat na liście zaufanych urzędów certyfikacji.

Urząd certyfikacji (CA) to organizacja, której urządzenia ufają. Jej podpis na certyfikacie serwera przekonuje aplikację, że połączenie jest bezpieczne.

Po co potrzebny własny certyfikat CA

Aby proxy mogło pokazać zaszyfrowany ruch, musi samo działać jako serwer dla aplikacji. W tym celu proxy na bieżąco generuje certyfikat dla każdego żądanego domenu i podpisuje go swoim własnym certyfikatem głównym CA.

Ale aplikacja domyślnie nie ufa temu samodzielnie stworzonemu CA. Dlatego ręcznie instalujemy certyfikat główny proxy w magazynie zaufanych certyfikatów urządzenia. Po tym aplikacja widzi podpis proxy jako wiarygodny i spokojnie nawiązuje połączenie.

Rada: Myśl o certyfikacie głównym proxy jak o przepustce. Dopóki nie wydasz tej przepustki urządzeniu, nie wpuści ono proxy do odczytu chronionego ruchu.

Dlaczego bez zaufania widać tylko nazwę hosta w SNI

Jeśli certyfikat proxy nie jest zainstalowany, aplikacja odmówi nawiązania bezpiecznego połączenia przez nie. Ale coś i tak będzie widoczne. Na początku uzgadniania TLS przesyłane jest pole SNI, czyli nazwa serwera, z którym nawiązywane jest połączenie. Jest potrzebne, aby serwer wiedział, jaka strona jest żądana.

Dlatego nawet bez zaufania do certyfikatu zobaczysz listę domen, do których aplikacja się odwołuje, ale nie będziesz mógł przeczytać treści zapytań i odpowiedzi. Aby czytać treść, potrzebny jest zainstalowany i zaufany certyfikat.

Czym jest SSL pinning

SSL pinning, czyli przypięcie certyfikatu, to dodatkowa ochrona. Aplikacja przechowuje wewnątrz odcisk oczekiwanego certyfikatu lub klucza serwera i sprawdza, czy serwer przedstawił właśnie ten. Nawet jeśli w systemie jest zaufany certyfikat proxy, aplikacja z pinningiem go odrzuci, ponieważ odcisk się nie zgadza. O pracy z pinningiem we własnych kompilacjach debug porozmawiamy osobno.

✅ Sprawdzenie: Rozumiesz, że proxy pokazuje ruch, będąc pośrednikiem, a do odczytu HTTPS potrzebny jest zaufany certyfikat główny proxy na urządzeniu.

Krok 1: konfigurujemy proxy w sieci na Android i iOS

Cel etapu: skierować cały ruch internetowy telefonu przez Twój komputer, na którym działa narzędzie proxy.

Przygotowujemy komputer i poznajemy jego adres

  1. Upewnij się, że komputer i telefon są podłączone do tej samej sieci Wi-Fi.
  2. Uruchom narzędzie proxy. Dla mitmweb w terminalu wpisz polecenie uruchomienia interfejsu webowego, dla Charles po prostu otwórz aplikację.
  3. Sprawdź, na którym porcie nasłuchuje proxy. Domyślnie u mitmproxy to port 8080, u Charles również 8888 lub 8080 w zależności od wersji.
  4. Poznaj lokalny adres IP komputera w sieci. W Windows użyj polecenia do sprawdzenia ustawień sieciowych, w macOS i Linux analogicznego polecenia w terminalu. Adres wygląda mniej więcej tak: 192.168.1.15.

Rada: Zapisz adres IP komputera i port proxy na kartce. Te dwie wartości będziesz wprowadzać w ustawieniach telefonu.

Konfiguracja proxy na Android

  1. Otwórz na telefonie aplikację Ustawienia.
  2. Przejdź do sekcji Sieć i internet, następnie Wi-Fi.
  3. Kliknij nazwę swojej bieżącej sieci, aby otworzyć jej parametry.
  4. Znajdź opcję Zaawansowane lub ikonę ołówka do edycji sieci.
  5. W polu Proxy wybierz wartość Ręcznie.
  6. W polu Nazwa hosta proxy wpisz adres IP komputera, np. 192.168.1.15.
  7. W polu Port wpisz port proxy, np. 8080.
  8. Zapisz ustawienia, klikając Zapisz.

Konfiguracja proxy na iOS

  1. Otwórz aplikację Ustawienia.
  2. Przejdź do sekcji Wi-Fi.
  3. Kliknij niebieską ikonę informacji obok nazwy swojej sieci.
  4. Przewiń w dół do sekcji Konfiguracja proxy HTTP.
  5. Wybierz tryb Ręcznie.
  6. W polu Serwer wpisz adres IP komputera.
  7. W polu Port wpisz port proxy.
  8. Wróć – ustawienia zapiszą się automatycznie.

⚠️ Uwaga: Po skonfigurowaniu proxy cały ruch internetowy telefonu będzie przechodził przez komputer. Jeśli narzędzie proxy jest wyłączone, internet na telefonie przestanie działać. To normalne: po prostu włącz proxy lub usuń ustawienia.

Oczekiwany rezultat

Otwórz na telefonie dowolną przeglądarkę i wejdź na prostą stronę przez HTTP. W interfejsie proxy powinny pojawić się wpisy o zapytaniach. Na razie HTTPS będzie wyświetlany tylko jako nazwa hosta, ponieważ certyfikat nie jest jeszcze zainstalowany.

Możliwe problemy. Jeśli nic się nie pojawia, sprawdź, czy telefon i komputer są w tej samej sieci, czy wpisałeś poprawny adres IP i port, oraz czy na komputerze zapora sieciowa nie blokuje połączeń.

✅ Sprawdzenie: W oknie proxy widoczne są przychodzące zapytania z telefonu, przynajmniej w formie listy domen.