Android'de Charles Proxy Nasıl Kurulur?
Android'de Charles Proxy'yi yapılandırmak için adım adım kılavuz. HTTP/HTTPS trafiğini yakalayın ve şifresini çözün, SSL CA sertifikasını yükleyin, Android 7 ve üzeri sürümlerdeki güvenlik kısıtlamalarını aşın ve mobil operatör proxy'lerini zincirleme kullanın.
- Wi-Fi proxy'sinin manuel olarak yapılandırılması — telefon trafiğini doğrudan iş istasyonunuzun IP adresi ve Charles'ın varsayılan 8888 numaralı bağlantı noktası üzerinden yönlendirin.
- SSL CA sertifikasının yüklenmesi — chls.pro/ssl adresinden indirin ve Android 11 ile 15 arasındaki sürümlerde güvenilir kimlik bilgisi olarak kaydedin.
- Android 7+'da SSL pinning'i atla — hata ayıklama derlemeleri için network_security_config.xml dosyasını yapılandırın veya yayınlanan APK'ların denetimi için sistem sertifikalarını dağıtın.
- Yukarı akış mobil proxy zincirleme — Charles, coğrafi hedeflemeli mobil API’leri test etmek için şifresi çözülmüş istekleri gerçek 4G/5G operatör IP’leri üzerinden yönlendirdi.
Charles Proxy Nedir ve Android'de Neden Kullanılmalı?
Charles Proxy is a cross-platform HTTP and HTTPS debugging proxy server that sits between client applications and the internet. For mobile engineers, security researchers, and QA specialists, Charles acts as a local man-in-the-middle (MITM) engine. It logs every outbound request initiated by your Android smartphone or emulator, measures endpoint latency, rewrites headers, throttles bandwidth to simulate degraded cellular connectivity, and decrypts TLS payloads in clear, formatted JSON or XML.
While inspecting web browser traffic on desktop machines is straightforward via native DevTools, modern Android mobile applications encrypt their network streams using TLS 1.3 and certificate verification routines. Configuring Charles Proxy for Android allows you to peer inside third-party mobile applications, audit API authentication headers, debug failing mobile payments, verify analytics tracking tags, and diagnose rate-limiting responses before deploying client updates.
REST ve GraphQL istek yüklerini tam olarak görüntüleyin, Bearer belirteçlerini, sorgu parametrelerini ve çerezleri inceleyin ve başarısız olan çağrıları değiştirilmiş başlıklarla yeniden çalıştırın.
Dinamik olarak oluşturulan kök CA sertifikalarını kullanarak HTTPS trafiğinin şifresini anında çözün ve okunamayan ikili TLS akışlarını okunabilir metne dönüştürün.
PXM2’nin dönen 4G/5G mobil proxy’lerini kullanarak Charles’ı zincirleyerek, masanızdan kalkmadan 40’tan fazla ülkedeki gerçek mobil IP adresleri üzerinden mobil uygulamaların hata ayıklamasını yapın.
Ön Koşullar ve İş İstasyonunuzun IP Adresini Bulma
Before configuring your Android device, you must ensure both your computer (running Charles Proxy) and your Android handset or tablet are connected to the exact same local Wi-Fi network. Public coffee shop networks, enterprise guest Wi-Fi, and networks with AP Client Isolation enabled will prevent your phone from reaching port 8888 on your computer.
Varsayılan olarak, Charles Proxy tüm yerel arayüzlerde HTTP proxy bağlantı noktası 8888'de dinleme yapar:
Bilgisayarınızın yerel IPv4 adresini bulmak için şu adımları izleyin:
-
Yöntem A: Charles Proxy'nin İçinde Doğrudan Kontrol Etme (En Kolay Yöntem)
Bilgisayarınızdaki Charles Proxy uygulamasında, üst menüden Yardım > Yerel IP Adresi seçeneğine tıklayın. Mevcut LAN IPv4 adresinizi gösteren bir iletişim kutusu açılır (örneğin, 192.168.1.145 veya 10.0.0.22).
-
Yöntem B: Komut Satırı Terminali Üzerinden Kontrol Etme
macOS veya Linux'ta, terminalinizde ifconfig veya ip a komutunu çalıştırın ve en0 veya wlan0 inet adresini bulun. Windows'ta ise Komut İstemi veya PowerShell'i açın ve ipconfig komutunu çalıştırın; ardından aktif Wi-Fi adaptörünüzün altındaki IPv4 adresini not edin.
# macOS / Linux terminal:
ip route get 1.1.1.1 | awk '{print $7}'
# Windows PowerShell:
(Get-NetIPAddress -AddressFamily IPv4 -InterfaceAlias 'Wi-Fi*').IPAddress
Firewall Warning: Ensure your workstation firewall (Windows Defender, macOS Application Firewall, or ufw on Linux) allows incoming TCP connections on port 8888. If blocked, your phone will immediately display "No Internet Connection" upon enabling the proxy.
1. Adım: Android'de Wi-Fi için Manuel Proxy Yapılandırması
İş istasyonunuzun IP adresi doğrulandıktan ve Charles Proxy çalışır duruma geldikten sonra, Android cihazınızın Wi-Fi ağ bağdaştırıcısını, tüm giden TCP trafiğini bilgisayarınızın proxy bağlantı noktası üzerinden yönlendirecek şekilde yapılandırın.
-
Android Wi-Fi Ayarlarını Aç
Ayarlar > Ağ ve İnternet > İnternet (veya Wi-Fi) seçeneğini açın. Şu anda bağlı olduğunuz Wi-Fi ağının yanındaki dişli simgesine uzun basın veya dokunun.
-
Ağı Değiştir ve Gelişmiş Seçenekleri Genişlet
Tap "Modify network" (or the pencil edit icon), then expand "Advanced options".
-
Proxy Ayarını Manuel Olarak Yapın
In the Proxy dropdown, select "Manual". Enter your computer's local IP (e.g. 192.168.1.145) under Proxy hostname, and type 8888 under Proxy port. Tap Save.
“Kaydet” seçeneğine dokunun. Bu andan itibaren, Android telefonunuzdan başlatılan tüm HTTP istekleri, 8888 numaralı bağlantı noktası üzerinden bilgisayarınıza yönlendirilir.
2. Adım: Charles’ta Android Bağlantısına Yetki Verme
Telefonunuz proxy üzerinden ilk ağ paketini gönderdiği anda, Charles Proxy yerel alt ağınızda tanınmayan bir IP adresinden gelen bir bağlantıyı algılar. Güvenlik nedenleriyle, Charles, siz cihazı açıkça yetkilendirene kadar erişimi engeller.
A modal dialog will pop up on your computer screen asking: "A connection attempt from [phone IP] was received. Do you want to allow it?"
İzin Ver seçeneğine tıklayın. Charles, telefonunuzun IP adresini otomatik olarak Erişim Kontrolü beyaz listesine ekleyecektir.
Yanlışlıkla “Reddet” seçeneğine tıklarsanız veya bu uyarı hiç görünmezse, Erişim Kontrolü beyaz listesini Proxy > Erişim Kontrolü Ayarları üzerinden manuel olarak yapılandırabilirsiniz:
Profesyonel İpucu: Yerel alt ağınızın tamamını (örneğin, 192.168.1.0/24 veya 10.0.0.0/24) Erişim Kontrol Ayarlarına eklemek, telefonunuzun DHCP kiralama süresi her farklı bir IP adresiyle yenilendiğinde Charles'ın size uyarı göstermesini engeller.
3. Adım: Charles SSL Sertifikasını İndirme
Bu aşamada, düz HTTP trafiği yakalanır; ancak tüm HTTPS trafiği, Charles’ta kilit simgeleriyle ve bozuk veriler içeren şifreli CONNECT tünelleri olarak görünür. TLS akışlarının şifresini çözmek için Android’in Charles Kök Sertifika Otoritesine (CA) güvenmesi gerekir.
Charles, yerleşik talimatlar içerir ve talep üzerine yerel bir web ağ geçidi aracılığıyla kök sertifikasını sunar:
-
Android telefonunuzda Chrome’u açın
Sertifika sabitlemesi kısıtlamaları olan uygulama içi web görüntüleyicileri veya tarayıcıları kullanmayın. Standart Google Chrome’u veya Android’in varsayılan tarayıcısını kullanın.
-
Sertifika indirme ağ geçidine gidin
Adres çubuğuna chls.pro/ssl yazın ve Enter tuşuna basın. (Uyarı: https:// değil, http:// adresini kullanın).
-
Dosya indirilmesini onaylayın
Charles bu etki alanını ele geçirir ve hemen, getssl.crt veya charles-proxy-ssl-proxying-certificate.pem adlı, oluşturulan kök sertifika dosyasını geri döndürür.
Alternatif çevrimdışı dışa aktarma: Telefonunuz chls.pro/ssl adresine erişemiyorsa, bilgisayarınızda Charles uygulamasını açın, Yardım > SSL Proxy > Charles Kök Sertifikasını Kaydet seçeneğine gidin, dosyayı .pem veya .crt uzantısıyla kaydedin ve USB yoluyla ya da adb push cert.pem /sdcard/Download/ komutuyla telefonunuza aktarın.
4. Adım: Android'de CA Sertifikasının Yüklenmesi
İndirdikten sonra, sertifikayı Android’in kimlik bilgisi deposuna yüklemeniz gerekir.
Android Sürümlerinde Sertifika Kurulumu
| Android Sürümü | Ayarlar'daki Gezinme Yolu | Davranış ve İpucu |
|---|---|---|
| Android 11, 12, 13, 14, 15 | Ayarlar > Güvenlik ve Gizlilik > Diğer güvenlik ayarları > Şifreleme ve kimlik bilgileri > Sertifika yükle > CA sertifikası | Android displays "Your CA certificate won't be private". Tap "Install anyway", verify lock screen PIN, and select getssl.crt from Downloads. |
| Android 7, 8, 9, 10 | Ayarlar > Güvenlik > Depolama alanından yükle (veya İndirilenler bildiriminde getssl.crt öğesine dokunun) | Direct certificate installation dialog appears. Enter name "Charles Proxy" and tap OK. |
5. Adım: HTTPS Şifre Çözme için SSL Proxy Özelliğini Etkinleştirme
Sertifikayı telefonunuza yüklediğinizde, telefonunuz Charles tarafından oluşturulan SSL sertifikalarını doğrulayabilir hale gelir. Ancak, SSL Proxy kurallarını yapılandırana kadar Charles'ın kendisi HTTPS trafiğini şifresini çözmeye çalışmayacaktır.
-
Charles’ta OpenSSL Proxy Ayarları
Charles’ın üst menüsünde, Proxy > SSL Proxy Ayarları seçeneğine gidin.
-
SSL Proxy Özelliğini Etkinleştir
Ensure the checkbox "Enable SSL Proxying" is checked.
-
Hedef Joker Kuralı Ekle (*:* veya *:443)
Under the Include tab, click "Add". In the Host field, type * (asterisk) to decrypt all domains, or specify a targeted domain such as *.example.com. In the Port field, type 443 (or *), then click OK.
6. Adım: Android 7 ve Üstü Ağ Güvenliği Yapılandırması ve SSL Sabitleme
Şu anda Android'de Google Chrome'u açarsanız, tüm HTTPS web sitelerinin şifrelemesinin başarıyla kaldırıldığını göreceksiniz. Ancak, yerel mobil uygulamanızı başlattığınızda, istekler “SSLHandshakeException: Sertifika yolu için güven dayanağı bulunamadı” hatasıyla başarısız olabilir.
Android 7.0’dan (API Seviyesi 24) itibaren Google, varsayılan güven politikasında değişiklik yaptı: Uygulama geliştiricisi, uygulama manifestosunda açıkça izin vermedikçe, yerel uygulamalar artık kullanıcı tarafından yüklenen CA sertifikalarına güvenmez.
Çözüm A: Geliştiriciler İçin (Geliştirmekte Olduğunuz Uygulamalar)
Uygulamanın kaynak koduna erişiminiz varsa, hata ayıklama sürümlerinin kullanıcı sertifikalarına güvenmesini sağlamak için bir ağ güvenliği yapılandırma dosyası oluşturun.
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<debug-overrides>
<trust-anchors>
<!-- Trust system CAs and user-installed CAs (Charles) in debug builds -->
<certificates src="system" />
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
Ardından, AndroidManifest.xml dosyanızda <application> etiketinin altında bu yapılandırmaya atıfta bulunun:
<application
android:name=".MainApplication"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:networkSecurityConfig="@xml/network_security_config">
...
</application>
Çözüm B: Üçüncü Taraf Uygulamalar İçin (Güvenlik Denetimleri ve Ters Mühendislik)
Kaynak kodunu düzenleyemediğiniz üçüncü taraf tarafından üretilmiş APK’ları analiz ederken, aşağıdaki üç yerleşik atlatma yönteminden birini kullanın:
| Teknik | Gereksinimler | Sertifika Kısıtlamalarını Nasıl Aşıyor? |
|---|---|---|
| Magisk TrustUserCerts Modülü | Root erişimi olan telefon veya Magisk emülatörü | Sertifikaları Kullanıcı deposundan (/data/misc/user/0/cacerts-added) Sistem deposuna (/system/etc/security/cacerts) taşır ve böylece uygulamaların Charles’ı fabrikadan önceden yüklenmiş bir sertifika yetkilisi (CA) olarak algılamasını sağlar. |
| Frida Dinamik Bağlama | Cihazdaki frida-server | Çalışma zamanında OkHttp3’ün CertificatePinner, TrustManagerImpl ve Conscrypt sınıflarını bellekte sabitleyerek SSL doğrulama kontrollerinin “true” sonucunu vermesini sağlar. |
| APKTool ile Yama Uygulama | Root erişimi olmayan cihaz | Decompiles the APK with apktool d app.apk, injects network_security_config.xml, sets android:debuggable="true", and resigns with uber-apk-signer. |
7. Adım: Charles’ı PXM2 4G/5G Mobil Proxy’leriyle Zincirleme
Charles, paketleri yerel olarak inceleyip şifresini çözerken, iş istasyonunuzdan gönderilen istekler evinizin veya ofisinizin geniş bant IP adresini taşır. Dolandırıcılık önleme tedbirlerini, Instagram/TikTok mobil otomasyonunu veya coğrafi kısıtlamalı akış API’lerini denetlerken, hedefler mobil kullanıcı aracı programlarından gelen veri merkezi veya ev geniş bant IP desenlerini işaretleyecektir.
Charles Proxy’yi, PXM2’ye özel 4G/5G mobil modemler aracılığıyla üst aşamada zincirleme olarak kullanabilirsiniz. Bu mimaride Charles, isteklerin şifresini çözer ve bunları masaüstü ekranınızda yerel olarak görüntülerken, PXM2 ise gerçek istekleri otantik mobil operatör radyo ağları üzerinden hedefe iletir.
Android'i Charles ve PXM2 hücresel modemlere bağlayan tam yukarı akış proxy zincirleme iş akışı.
Charles'ta yukarı akış zincirlemeyi yapılandırmak için:
-
Dış Proxy Ayarları'na gidin
Charles'ta, Proxy > Harici Proxy Ayarları seçeneğine tıklayın.
-
Harici Proxy Sunucularını Etkinleştir
Check "Use external proxy servers". Check both "Web Proxy (HTTP)" and "Secure Web Proxy (HTTPS)".
-
PXM2 Ağ Geçidi Kimlik Bilgilerini Girin
In Web Proxy Server, enter your assigned PXM2 gateway hostname and port (for example, gate.pxm2.io:8000). Check "External proxy requires authentication", then input your username and password.
8. Adım: Proxy'yi Devre Dışı Bırakma ve Yaygın Hataların Giderilmesi
Test oturumunuz sona erdiğinde, telefonunuzdaki proxy'yi kapatmayı unutmayın. Android Wi-Fi proxy'si hâlâ etkin durumdayken iş istasyonunuzdaki Charles uygulamasını kapatırsanız, telefonunuzun internet bağlantısı tamamen kesilecektir.
Geri almak için: Ayarlar > Ağ ve internet > Wi-Fi > Ağı Düzenle > Gelişmiş seçenekler bölümüne gidin ve Proxy ayarını Manuel’den tekrar Yok olarak değiştirin.
Sorun Giderme Tablosu: Android Charles Proxy Sorunları
| Gözlemlenen Sorun / Hata | Temel Neden | Eylemi Düzelt |
|---|---|---|
| Phone shows "No Internet Connection" immediately | 8888 numaralı bağlantı noktası bilgisayarın güvenlik duvarı tarafından engellenmiş veya Charles Erişim Kontrolü'nde telefonun IP adresi reddedilmiştir. | Windows Güvenlik Duvarı / macOS Pfctl’de 8888 numaralı bağlantı noktasını izin verin. Charles Proxy > Erişim Kontrol Ayarları’nı açın ve alt ağınızı ekleyin (örn. 192.168.1.0/24). |
| chls.pro/ssl'da zaman aşımı hatası veriliyor veya harici bir web sitesi gösteriliyor | Wi-Fi proxy'si telefonda henüz etkin değil ya da yanlış bir IP adresine yönlendirilmiş. | Bilgisayarınızın IP adresinin DHCP yoluyla değişmediğini kontrol edin. chls.pro/ssl adresine girmeden önce proxy ayarının “Manuel” olarak ve bağlantı noktası 8888 olarak ayarlandığından emin olun. |
| SSLHandshake: Önemli bir uyarı alındı: certificate_unknown | CA sertifikası yüklenmemiş ya da uygulama, Android 7 ve üzeri sürümlerdeki kullanıcı CA kısıtlamalarını uyguluyor. | Ayarlar > Güvenlik > Güvenilir kimlik bilgileri > Kullanıcı sekmesine göz atarak Charles CA’nın mevcut olup olmadığını kontrol edin. network_security_config.xml dosyasını uygulayın veya Magisk TrustUserCerts’i kullanın. |
| Charles’ta isteklerin yanında bulunan kırmızı X işaretli kilit simgesi | İstenen ana bilgisayar veya bağlantı noktası için SSL Proxy özelliği devre dışıdır. | Right-click the host in the Structure panel and click "Enable SSL Proxying", or add *:443 under Proxy > SSL Proxying Settings. |
| Uygulama, geçerli bir sertifikaya rağmen bağlantı hatası gösteriyor | Uygulama, sabit kodlanmış SSL Pinning özelliğini kullanmaktadır (örn. OkHttp CertificatePinner). | Sertifika karma kontrolünü dinamik olarak devre dışı bırakmak için Frida’yı bir SSL unpinning betiği (örn. frida-multiple-unpinning) ile birlikte kullanın. |
Amerika Birleşik Devletleri
Birleşik Krallık
Fransa
Sık Sorulan Sorular
Charles Proxy'yi kurduktan sonra Android neden "İnternet yok" uyarısını gösteriyor?
This happens when Charles Proxy is not running, the computer firewall blocks inbound connections on port 8888, or your Android device is not connected to the exact same Wi-Fi subnet. Verify your computer local IP address, ensure Charles is running and that you clicked "Allow" on the connection prompt, and allow port 8888 in Windows Defender or macOS Application Firewall.
Charles Proxy'de HTTPS istekleri neden SSL el sıkışma hatalarıyla başarısız oluyor?
Since Android 7.0 (API level 24), Android apps do not trust user-installed CA certificates by default. While Chrome can browse HTTPS sites after you install the certificate, native apps will throw SSLHandshakeException unless the app includes a network_security_config.xml file trusting user certificates, or the certificate is moved into the system trust store on a rooted device or emulator.
chls.pro/ssl açılmıyorsa Charles sertifikasını nasıl indirebilirim?
You must configure your Android Wi-Fi proxy to point to Charles (computer IP and port 8888) BEFORE opening chls.pro/ssl in your mobile browser. Charles intercepts this exact domain to serve its root certificate. Alternatively, in Charles on your PC, navigate to Help > SSL Proxying > Save Charles Root Certificate, transfer the .pem or .crt file to your phone via USB or adb, and install it.
Android 11, 12, 13, 14 ve 15'te CA sertifikası yükleme seçeneği nerede bulunur?
In Android 11 and later, tapping a certificate file no longer installs it directly. Open Settings > Security (or Security & Privacy) > More security settings > Encryption & credentials > Install a certificate > CA certificate. Tap "Install anyway" on the security warning, authenticate with your PIN/fingerprint, and select the downloaded getssl.crt file from your Downloads folder.
Charles Proxy’yi bir PXM2 4G/5G mobil proxy ile nasıl zincirleyebilirim?
In Charles, go to Proxy > External Proxy Settings. Check "Use external proxy servers", select "Web Proxy (HTTP)" and "Secure Web Proxy (HTTPS)", enter your PXM2 proxy hostname and port (e.g., gate.pxm2.io:8000), check "External proxy requires authentication", and enter your PXM2 credentials. All outbound traffic from your Android device will route through Charles for local inspection and exit via real mobile carrier cellular IPs.
İlgili Mobil Proxy Kılavuzları
PXM2 ağı genelinde programlama dilleri, işletim sistemleri ve otomasyon platformlarına yönelik kurulum kılavuzlarını keşfedin.
Platform ve İşletim Sistemi Kılavuzları
Geliştirici ve Otomasyon Kılavuzları
Mobil Uygulamaları Gerçek 4G/5G Operatör IP’leri Üzerinden Test Edin
Yerel Charles hata ayıklama özelliğini, 40'tan fazla ülkede bulunan özel mobil operatör modemleriyle birleştirin. Sınırsız veri, anında değiştirilebilen uç noktalar ve veri merkezi IP engellemeleriyle karşılaşmama.
Mobil Proxy Alın