Fiddler jako proxy pro iOS: Kompletní průvodce

06/08/2024

Rating: 4.33 (12588 votes)

Jako vývojáři, testeři nebo prostě jen zvídaví uživatelé se často ocitáme v situaci, kdy potřebujeme nahlédnout pod pokličku síťové komunikace našich mobilních zařízení. Ať už se jedná o ladění chyb v aplikacích, analýzu API požadavků nebo jen zjištění, co přesně se děje na pozadí, nástroje pro odchytávání síťového provozu jsou neocenitelné. Pro mnohé je Fiddler, robustní webový ladicí proxy, volbou číslo jedna na desktopu. Ale co když potřebujete sledovat provoz z vašeho iPhonu nebo iPadu? Mnoho uživatelů si klade otázku: Běží Fiddler přímo na iOS? Odpověď je bohužel ne, ale to neznamená, že ho nemůžete použít! Fiddler se sice neinstaluje přímo na vaše iOS zařízení, ale může sloužit jako výkonná vzdálená proxy, která zachytí veškerou komunikaci z vašeho mobilního zařízení. V tomto podrobném průvodci se dozvíte, jak na to, a navíc získáte cenné tipy pro řešení běžných problémů.

Does fiddler run on iOS?
Fiddler doesn't run on iOS but luckily, it can be used as a remote proxy. So Fiddler Classic running on my Windows computer can inspect my iOS/iPadOS HTTP (S) traffic, which is great. iPad Windows Google Fiddler can also decrypt and inspect HTTPS traffic and re-encrypt it again.

Vzpomínám si na frustrující situaci, kdy jsem se nemohl přihlásit ke svému Google účtu na iPadu – místo přihlašovacího formuláře se objevila jen prázdná stránka nebo záhadná chyba -999 (NSURLErrorDomain: -999). Restart, reinstalace aplikací, aktualizace iOS, změna sítě, DNS, VPN – nic nepomohlo. Nechtěl jsem provádět tovární reset, který je časově náročný. Potřeboval jsem zjistit, co iPad vlastně požaduje, jakou URL a jakou odpověď dostává. Zkrátka, chtěl jsem „očichat“ vlastní provoz. A právě v takových chvílích je Fiddler k nezaplacení.

Obsahový index

Co je Fiddler a proč ho potřebujete pro iOS?

Fiddler je webový ladicí proxy server, který běží na vašem počítači (primárně Windows pro Fiddler Classic, nebo macOS/Linux pro Fiddler Everywhere) a umožňuje vám sledovat, analyzovat a dokonce i upravovat HTTP a HTTPS provoz mezi vaším zařízením a internetem. Představte si ho jako prostředníka, který stojí uprostřed veškeré komunikace a zaznamenává vše, co se děje.

  • Zobrazení požadavků a odpovědí: Vidíte každý požadavek, který vaše aplikace nebo prohlížeč odešle, a každou odpověď, kterou obdrží.
  • Replay a úpravy: Můžete opakovat požadavky, měnit hlavičky, těla zpráv nebo simulovat pomalejší sítě.
  • Dekódování HTTPS: S Fiddlerem můžete dešifrovat a kontrolovat šifrovaný HTTPS provoz, což je klíčové pro debugování moderních aplikací.
  • Skriptování a rozšíření: Fiddler je vysoce rozšiřitelný a umožňuje vám automatizovat složité scénáře.

Jak už bylo zmíněno, Fiddler samotný na iOS neběží. Místo toho jej použijeme jako vzdálenou proxy. To znamená, že veškerý síťový provoz z vašeho iPhonu nebo iPadu bude přesměrován přes Fiddler běžící na vašem počítači, kde jej Fiddler může zachytávat a analyzovat. Je to elegantní řešení, které vám umožní získat plnou kontrolu nad síťovou komunikací vašeho iOS zařízení.

How to use fiddler as a proxy in iOS?

Příprava Fiddleru na vašem počítači

Než se pustíme do konfigurace vašeho iOS zařízení, je nutné správně nastavit Fiddler na vašem stolním počítači. Ujistěte se, že váš počítač a iOS zařízení jsou ve stejné lokální síti a mohou spolu komunikovat (např. můžete zkusit pingnout IP adresu vašeho iOS zařízení z počítače).

1. Povolte vzdálená připojení ve Fiddleru

Otevřete Fiddler Classic a proveďte následující kroky:

  1. Přejděte na Nástroje > Možnosti (Tools > Options).
  2. Vyberte záložku Připojení (Connections).
  3. Zaškrtněte políčko Povolit vzdáleným počítačům připojení (Allow remote computers to connect).
  4. Důležité: Restartujte Fiddler, aby se změny projevily.

Fiddler nyní naslouchá na portu 8888 (což je výchozí port, můžete jej změnit ve stejném nastavení). Ujistěte se, že tento port není blokován jinou aplikací nebo firewallom.

2. Nastavení brány firewall (Firewall)

Toto je často opomíjený, ale kritický krok. Vaše brána firewall ve Windows (nebo na jiném operačním systému) může blokovat příchozí připojení k Fiddleru. Musíte zajistit, aby Fiddler byl povolen:

  1. Otevřete Nastavení Windows > Aktualizace a zabezpečení > Zabezpečení Windows > Brána firewall a ochrana sítě.
  2. Klikněte na Povolit aplikaci přes bránu firewall.
  3. Vyhledejte Fiddler (nebo fiddler.exe) a ujistěte se, že je povolen pro privátní i veřejné sítě (pokud je to relevantní pro vaši situaci).
  4. Zkontrolujte, zda vaše brána firewall neblokuje veškerá příchozí připojení (někdy se tato možnost zaškrtne automaticky). Pokud ano, dočasně ji zrušte, ale nezapomeňte ji po dokončení ladění znovu povolit pro vaši bezpečnost!

3. Zjistěte IP adresu vašeho počítače s Fiddlerem

Potřebujete znát IP adresu počítače, na kterém běží Fiddler, aby ji vaše iOS zařízení mohlo použít jako proxy. Nejjednodušší způsob, jak to zjistit ve Fiddleru Classic, je najet myší na indikátor Online v pravém dolním rohu panelu nástrojů Fiddleru. Zobrazí se seznam IP adres přiřazených vašemu stroji. Vyberte tu, která je relevantní pro vaši lokální síť (často začíná 192.168.x.x nebo 10.x.x.x).

4. Ověřte připojení

Předtím, než začnete konfigurovat iOS, ověřte, že vaše iOS zařízení vidí Fiddler. Otevřete Safari na svém iPhonu/iPadu a zadejte adresu http://[IP_ADRESA_FIDDLER_STROJE]:8888 (nahraďte [IP_ADRESA_FIDDLER_STROJE] skutečnou IP adresou, kterou jste zjistili v předchozím kroku). Pokud vše funguje, měli byste vidět stránku Fiddler Echo Service.

How to use fiddler as a proxy in iOS?
Restart Fiddler in order the changes to take effect. Fiddler is now listening on port 8888 (this is the default port, you can change it from the setting above). Once Fiddler is listening, we should use it as a proxy in iOS. Your device’s traffic should be visible in Fiddler. With the current setup you should be able to capture HTTP traffic.

Konfigurace vašeho iOS zařízení jako proxy

Nyní, když je Fiddler připraven naslouchat, je čas nastavit vaše iOS zařízení tak, aby přes něj směrovalo veškerý svůj provoz.

1. Nastavení proxy v iOS

  1. Na vašem iPhonu nebo iPadu otevřete Nastavení (Settings).
  2. Klepněte na Wi-Fi.
  3. Najděte síť Wi-Fi, ke které jste aktuálně připojeni, a klepněte na modrou ikonu i (Informace) vedle jejího názvu.
  4. Přejděte dolů na část Konfigurace proxy (Configure Proxy) a vyberte možnost Ručně (Manual).
  5. Do pole Server zadejte IP adresu počítače, na kterém běží Fiddler (tu, kterou jste zjistili dříve, např. 192.168.1.100).
  6. Do pole Port zadejte port, na kterém Fiddler naslouchá (výchozí je 8888).
  7. Klepněte na Uložit (Save) v pravém horním rohu.

Váš iOS zařízení by nyní mělo směrovat veškerý HTTP provoz přes Fiddler. Pokud nyní otevřete prohlížeč nebo aplikaci na iOS, měli byste vidět požadavky objevující se v seznamu relací Fiddleru.

Odchytávání HTTPS provozu: Důvěra je klíčová

Pokud se pokusíte otevřít jakoukoli webovou stránku s HTTPS (což je dnes většina stránek a aplikací), pravděpodobně narazíte na chybu zabezpečení, jako je „Tento webový certifikát není důvěryhodný!“. Důvodem je, že Fiddler funguje jako „Man-in-the-Middle“ (MITM) proxy pro HTTPS provoz. To znamená, že dešifruje provoz, aby jej mohl analyzovat, a poté jej znovu zašifruje pomocí vlastního certifikátu. Aby vaše iOS zařízení tomuto certifikátu důvěřovalo, musíte nainstalovat a povolit kořenový certifikát Fiddleru.

1. Povolte dešifrování HTTPS ve Fiddleru

Nejprve se ujistěte, že Fiddler je schopen dešifrovat HTTPS provoz. Fiddler Classic vyžaduje instalaci pluginu CertMaker.dll (postaveného na BouncyCastle), který mění způsob generování certifikátů. S tímto pluginem Fiddler používá pouze jeden kořenový certifikát a negeneruje mezilehlé certifikáty pro každou relaci.

How do I Capture fiddler logs from an iOS device?
To capture Fiddler logs from an iOS device: Download and install Fiddler, then open the application. Go to Tools > Fiddler Options > Connections, then check the Allow remote computers to connect box. Restart Fiddler. Note: Ensure your firewall allows incoming connections to the Fiddler process.
  1. Otevřete Fiddler Classic a zastavte odchytávání (File > Capture Traffic, zrušte zaškrtnutí).
  2. Přejděte na Nástroje > Možnosti > HTTPS.
  3. Zrušte zaškrtnutí políčka Zachytávat připojení HTTPS (Capturing HTTPS Connects).
  4. Zavřete Fiddler Classic.
  5. Stáhněte a nainstalujte BouncyCastle (CertMaker.dll) z oficiálních zdrojů Fiddleru (např. stránky Telerik/Progress). Tím se CertMaker.dll přidá do vaší instalace Fiddleru.
  6. Po dokončení instalace otevřete Fiddler.
  7. Přejděte na Nástroje > Možnosti > HTTPS a použijte Akce > Resetovat všechny certifikáty (Actions > Reset all certificates). Tím se odeberou všechny dříve použité certifikáty a nastaví se nový. Odklikněte všechna systémová dialogová okna.
  8. Nyní zaškrtněte políčka Zachytávat připojení HTTPS (Capturing HTTPS Connects) a Dešifrovat provoz HTTPS (Decrypt HTTPS traffic).

2. Instalace a důvěra certifikátu Fiddleru na iOS

Tento krok je naprosto klíčový pro sledování HTTPS provozu.

  1. Na vašem iOS zařízení otevřete prohlížeč Safari.
  2. Zadejte adresu http://ipv4.fiddler:8888/ (nebo http://[IP_ADRESA_FIDDLER_STROJE]:8888/).
  3. Na stránce Fiddler Echo Service klepněte na odkaz pro stažení kořenového certifikátu Fiddleru (Fiddler root certificate).
  4. iOS vás vyzve ke stažení konfiguračního profilu. Povolte stažení.
  5. Po stažení přejděte do Nastavení > Obecné > Stažené profily (nebo Nastavení > Obecné > Správa zařízení, v závislosti na verzi iOS).
  6. Zde byste měli vidět profil s názvem „DO_NOT_TRUST_FiddlerRoot“ nebo „Fiddler Root Certificate Authority“. Klepněte na něj a poté na Nainstalovat (Install) v pravém horním rohu. Potvrďte instalaci.
  7. Kritický krok pro iOS 10.3 a novější: Po instalaci certifikátu musíte ručně povolit plnou důvěru pro tento certifikát. Přejděte na Nastavení > Obecné > Informace > Nastavení důvěry certifikátů (Settings > General > About > Certificate Trust Settings). Zde najděte certifikát „DO_NOT_TRUST_FiddlerRoot“ (nebo „Fiddler Root Certificate Authority“) a přepněte přepínač do polohy ON. Potvrďte varování, že tímto povolujete třetí straně odposlouchávat veškerou vaši komunikaci. Bez tohoto kroku nebude HTTPS provoz dešifrován.

Nyní byste měli být schopni zachytávat a analyzovat jak HTTP, tak HTTPS provoz z vašeho iOS zařízení ve Fiddleru.

Co je „Certificate Pinning“?

Některé aplikace a služby, včetně těch od Apple (např. App Store, iTunes), používají tzv. „certificate pinning“ (připínání certifikátů). To je dodatečná vrstva zabezpečení, která znamená, že tyto služby budou důvěřovat pouze předem definované sadě certifikátů, a nebudou důvěřovat certifikátům vydaným třetími stranami, jako je ten od Fiddleru. V takových případech Fiddler nebude schopen dešifrovat provoz a daná služba nemusí fungovat, když je Fiddler nastaven jako proxy. Fiddler Everywhere má vestavěné mechanismy, které automaticky obcházejí některé Apple domény (např. *.apple.com, *.itunes.com), aby se předešlo problémům s konektivitou. U Fiddler Classic a jiných operačních systémů je nutné tyto výjimky přidat ručně.

How do I Capture iOS traffic with fiddler?
Capture iOS traffic with Fiddler: Install Fiddler on your desktop machine and ensure the PC and iOS device are discoverable on the same network. Refer to this page for further information on installing Fiddler. From Fiddler, select Tools, then Options. Restart Fiddler.

Řešení běžných problémů a tipy

Při nastavování Fiddleru jako proxy pro iOS se můžete setkat s několika běžnými problémy. Zde je několik tipů, jak je řešit:

  • Prázdná stránka nebo chyba -999 (NSURLErrorCancelled): Jak jsem zmínil na začátku, s tímto problémem jsem se setkal. Zjistil jsem, že místo továrního resetu lze na iPadu resetovat pouze síťová nastavení. Jděte do Nastavení > Obecné > Přenést nebo resetovat iPhone > Resetovat > Resetovat nastavení sítě. Poté budete muset znovu zadat heslo k Wi-Fi. Mně to okamžitě vyřešilo problém s přihlášením k Google účtu.
  • Fiddler nevidí žádný provoz:
    1. Zkontrolujte, zda je Fiddler spuštěn a zachytává provoz (File > Capture Traffic).
    2. Ujistěte se, že vaše brána firewall neblokuje Fiddler.
    3. Znovu ověřte, zda jsou vaše PC a iOS zařízení ve stejné síti a mohou se navzájem pingnout.
    4. Zkontrolujte, zda jste správně zadali IP adresu Fiddleru a port 8888 v nastavení proxy na iOS.
    5. Ověřte, že jste restartovali Fiddler poté, co jste povolili vzdálená připojení.
  • HTTPS provoz se nezobrazuje nebo hlásí chyby certifikátu:
    1. Ujistěte se, že jste ve Fiddleru povolili dešifrování HTTPS provozu (Nástroje > Možnosti > HTTPS > Decrypt HTTPS traffic).
    2. Zkontrolujte, zda jste úspěšně nainstalovali kořenový certifikát Fiddleru na iOS.
    3. Nejdůležitější: Ověřte, že jste pro certifikát Fiddleru povolili plnou důvěru v Nastavení > Obecné > Informace > Nastavení důvěry certifikátů.
  • Bezpečnostní upozornění: Jakmile dokončíte ladění, nezapomeňte odebrat nastavení proxy z vašeho iOS zařízení (Nastavení > Wi-Fi > i > Konfigurace proxy > Vypnuto nebo Automaticky) a obnovit původní nastavení brány firewall na vašem počítači. Ponechání proxy zapnuté nebo firewallu otevřeného může představovat bezpečnostní riziko.

Fiddler Classic vs. Fiddler Everywhere: Který si vybrat?

Zatímco Fiddler Classic je oblíbený a plně vybavený nástroj, primárně určený pro Windows, existuje i novější Fiddler Everywhere, který nabízí multiplatformní podporu (Windows, macOS, Linux) a modernější uživatelské rozhraní. Ačkoli Fiddler Everywhere nemusí mít všechny pokročilé funkce Fiddler Classic, pro většinu úkolů s odchytáváním mobilního provozu je více než dostačující a nabízí jednodušší proces nastavení pro vzdálená zařízení, včetně iOS.

FunkceFiddler Classic (Windows)Fiddler Everywhere (Multiplatformní)
Podporované OSWindowsWindows, macOS, Linux
Rozsah funkcíŠirší, více pokročilých nástrojůMenší, ale stále robustní, moderní
Uživatelské rozhraníStarší, klasickéModerní, intuitivní
Výchozí proxy port88888866
Automatický průvodce pro iOSNeAno (v aplikaci)
Obcházení Apple služebRuční konfiguraceAutomatické (pro macOS host)

Pokud pracujete především na Windows a potřebujete plnou kontrolu a flexibilitu, Fiddler Classic je skvělá volba. Pokud preferujete moderní rozhraní, multiplatformní podporu a zjednodušené nastavení pro mobilní zařízení, Fiddler Everywhere stojí za vyzkoušení.

Často kladené otázky (FAQ)

Běží Fiddler přímo na iOS?

Ne, Fiddler se neinstaluje přímo na iOS zařízení. Místo toho se používá jako vzdálená proxy běžící na vašem počítači, přes kterou se směruje veškerý síťový provoz z iOS zařízení.

Proč nevidím HTTPS provoz ve Fiddleru, i když jsem nastavil proxy?

Pro odchytávání HTTPS provozu musíte na svém iOS zařízení nainstalovat a povolit plnou důvěru pro kořenový certifikát Fiddleru. Bez toho iOS nebude důvěřovat certifikátům vydaným Fiddlerem a komunikace bude šifrována nebo zamítnuta.

How do I get fiddler Classic on my iPhone?
Verify client iOS device can reach Fiddler Classic by navigating in the browser to http://FiddlerMachineIP:8888. This address should return the Fiddler Echo Service page. For iPhone: Disable the 3g/4g connection. On the iOS device open Settings > General > VPN & Device Management and remove all DO_NOT_TRUST_FiddlerRoot profiles.

Co je to „certificate pinning“ a jak ovlivňuje Fiddler?

Certificate pinning je bezpečnostní mechanismus, kdy aplikace důvěřuje pouze specifickým certifikátům. To znamená, že i když máte nainstalovaný certifikát Fiddleru, aplikace s pinningem (např. některé bankovní aplikace, Apple App Store) nebudou přes Fiddler fungovat, protože nebudou důvěřovat jeho certifikátu. V takových případech Fiddler nemůže dešifrovat provoz.

Musím po dokončení ladění odebrat nastavení proxy z mého iOS zařízení?

Ano, je to vysoce doporučeno. Ponechání Fiddleru jako proxy může mít bezpečnostní důsledky a může také vést k problémům s připojením, pokud váš počítač s Fiddlerem není spuštěn nebo není dostupný. Nezapomeňte také obnovit nastavení firewallu.

Jak zjistím IP adresu mého počítače s Fiddlerem?

Ve Fiddleru Classic stačí najet myší na indikátor „Online“ v pravém dolním rohu aplikace. Zobrazí se seznam IP adres. Pro Fiddler Everywhere se IP adresa zobrazuje v dolní části okna aplikace nebo v nastavení připojení.

Závěr

Přestože Fiddler není nativní iOS aplikací, jeho schopnost fungovat jako vzdálená proxy z něj činí nepostradatelný nástroj pro každého, kdo potřebuje ladit nebo analyzovat síťový provoz na iPhonu či iPadu. Proces nastavení vyžaduje několik kroků, zejména pro dešifrování HTTPS provozu, ale s tímto průvodcem byste měli být schopni Fiddler zprovoznit bez větších potíží. Odhalování problémů s přihlášením, jako byl ten můj s Google účtem, nebo ladění složitých API volání, se stane mnohem jednodušším. Takže, neváhejte a dejte Fiddleru šanci – jeho schopnosti vás určitě překvapí!

Chceš-li si přečíst další články podobné jako Fiddler jako proxy pro iOS: Kompletní průvodce, navštiv kategorii iPhone.

Go up