Charles Proxy — apa itu, pengaturan dan penyadapan lalu lintas HTTPS

Penulis: IT Sectr Diterbitkan: 2026-05-08 Waktu membaca: 8 mnt

Charles Proxy — server proxy lintas platform untuk debugging lalu lintas HTTP/HTTPS, digunakan oleh pengembang untuk mencegat, melihat, dan memodifikasi permintaan jaringan. Menurut Karl von Randow, pembuat alat (2025), Charles telah digunakan di lebih dari 50.000 perusahaan di seluruh dunia sejak 2004. Proxy mendukung penyadapan lalu lintas dari perangkat seluler melalui WiFi, proxy HTTPS dengan pemasangan sertifikat root, dan berbagai alat analisis API.

Poin Penting

  • Charles Proxy — server proxy HTTP/HTTPS untuk menyadap dan menganalisis lalu lintas jaringan dengan kemampuan debugging lanjutan
  • Proxy HTTPS diimplementasikan melalui pemasangan sertifikat root Charles pada perangkat, memungkinkan tampilan lalu lintas terenkripsi
  • Rewrite dan Breakpoints — alat hebat untuk memodifikasi permintaan dan respons secara langsung tanpa mengubah kode server atau klien
  • Map Local dan Map Remote memungkinkan penggantian sumber daya jaringan dengan file lokal atau server alternatif untuk pengujian
  • Throttle — simulasi koneksi jaringan lambat dan tidak stabil untuk menguji perilaku aplikasi dalam kondisi konektivitas buruk

Apa itu Charles Proxy?

Charles Proxy — adalah proxy HTTP dan monitor HTTP yang bertindak sebagai perantara antara klien dan server. Semua permintaan dan respons melewati Charles, memungkinkan melihat kontennya, menganalisis struktur, mengubah data secara real-time, dan mensimulasikan berbagai kondisi jaringan. Tersedia untuk Windows, macOS, dan Linux.

Sejarah dan Posisi

Charles Proxy dibuat pada tahun 2004 oleh Karl von Randow dan tetap menjadi salah satu alat paling populer untuk debugging lalu lintas jaringan. Tidak seperti alternatif gratis, Charles menawarkan lisensi berbayar dengan masa percobaan 30 hari. Alat ini diposisikan sebagai solusi profesional untuk pengembang aplikasi seluler, pengembang web, dan insinyur QA yang membutuhkan kendali penuh atas komunikasi HTTP.

Kompatibilitas Platform

Charles bekerja sebagai proxy sistem di komputer dan dapat menyadap lalu lintas dari perangkat apa pun di jaringan yang sama: Android, iOS, simulator, emulator, browser web, dan perangkat IoT. Untuk penyadapan HTTPS, Anda perlu menginstal sertifikat root Charles di setiap perangkat. Lalu lintas didukung pada HTTP/1.1 dan HTTP/2 (sebagian). HTTP/3 (QUIC) tidak didukung pada tingkat penyadapan.

Bagaimana Charles Proxy Bekerja

Charles bekerja berdasarkan prinsip proxy MITM (Man-in-the-Middle): ketika klien mengirim permintaan melalui Charles, alat ini menyadap permintaan tersebut, meneruskannya ke server target, menerima respons, dan mengirimkannya kembali ke klien. Semua lalu lintas melewati Charles, memungkinkan analisis dan modifikasi.

Arsitektur Proxy

Saat dijalankan, Charles menciptakan proxy HTTP lokal di port 8888 (default). Sistem operasi atau aplikasi dikonfigurasi untuk menggunakan proxy ini. Semua permintaan HTTP pertama-tama dikirim ke Charles, yang kemudian bertindak sebagai klien penuh untuk server target. Untuk HTTPS, Charles menggunakan teknik SSL-proxy sendiri: ia menghasilkan sertifikat secara real-time untuk setiap domain, ditandatangani oleh sertifikat root Charles. Jika sertifikat root diinstal sebagai tepercaya di perangkat, Charles dapat mendekripsi dan melihat lalu lintas HTTPS.

Mode Kerja

Charles mendukung dua mode: Proxy (server proxy klasik) dan SOCKS Proxy (untuk lalu lintas UDP dan TCP). Untuk pengembangan web, digunakan HTTP-proxy standar. Untuk perangkat seluler — konfigurasi WiFi Proxy di perangkat dengan menentukan alamat IP komputer tempat Charles berjalan. MacOS mendukung konfigurasi proxy otomatis untuk simulator iOS.

xml
<!-- Konfigurasi network_security_config.xml untuk Android dengan dukungan Charles -->
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <debug-overrides>
        <trust-anchors>
            <!-- Percayai sertifikat Charles dalam build Debug -->
            <certificates src="user" />
        </trust-anchors>
    </debug-overrides>
</network-security-config>

Fitur Utama Charles Proxy

Charles Proxy menyediakan seperangkat alat profesional untuk analisis dan modifikasi lalu lintas yang jauh melampaui penyadapan permintaan sederhana.

Rewrite dan Breakpoints

Alat Rewrite memungkinkan modifikasi otomatis bagian tertentu dari permintaan atau respons: header, parameter URL, body respons. Misalnya, Anda dapat mengganti header User-Agent dengan nilai dari perangkat lain atau menghapus cookie tertentu. Breakpoints bekerja seperti debugger: permintaan dijeda pada tahap yang dipilih (sebelum dikirim atau sebelum diterima), dan pengembang dapat memodifikasi kontennya secara manual sebelum dilanjutkan. Ini berguna untuk menguji penanganan respons kesalahan atau status non-standar.

Map Local dan Map Remote

Map Local memungkinkan penggantian sumber daya jaringan (CSS, JS, JSON) dengan file lokal di disk. Ini sangat diperlukan dalam pengembangan frontend: Anda dapat mengubah CSS/JS dan segera melihat hasilnya tanpa deploy ke server. Map Remote mengarahkan permintaan dari satu URL ke URL lain — misalnya, dari server produksi ke staging untuk pengujian. Kedua alat bekerja dengan pola URL yang mendukung wildcards.

Throttle dan Simulasi Kondisi Jaringan

Alat Throttle memungkinkan simulasi berbagai jenis koneksi jaringan berdasarkan profil yang telah ditentukan: 3G, EDGE, GPRS, DSL, WiFi. Anda dapat mengatur batas kecepatan (download/upload), latensi, kehilangan paket, dan stabilitas. Ini sangat penting untuk menguji perilaku aplikasi dalam koneksi lambat atau tidak stabil — penanganan timeout yang tepat, percobaan ulang, mode offline.

ProfilDownloadUploadLatensiSkenario Khas
3G780 kbps330 kbps200 msPengujian dengan sinyal seluler lemah
EDGE130 kbps50 kbps400 msKoneksi sangat lambat
GPRS50 kbps20 kbps500 msKoneksi minimal yang mungkin
DSL2 Mbps256 kbps50 msKoneksi kabel rumah
WiFi10 Mbps10 Mbps10 msKoneksi WiFi bagus

Auto Save dan Recording

Charles dapat secara otomatis menyimpan sesi lalu lintas ke file .chls, memungkinkan analisis nanti atau berbagi dengan rekan kerja. Recording Control memungkinkan konfigurasi fleksibel lalu lintas mana yang akan disimpan: berdasarkan domain, jenis konten, kode status. Ini nyaman untuk pemantauan API jangka panjang.

Pengaturan Charles Proxy untuk Perangkat Seluler

Untuk debugging lalu lintas aplikasi seluler, Charles dikonfigurasi sebagai WiFi Proxy: semua perangkat di jaringan yang sama dengan komputer dapat mengarahkan lalu lintas melalui Charles. Pengaturan HTTPS yang benar memerlukan pemasangan sertifikat Charles pada perangkat seluler.

Pengaturan di Android

Untuk Android: buka Pengaturan → WiFi → Lanjutan → Proxy, pilih Manual dan masukkan alamat IP komputer dengan port 8888. Kemudian buka browser di perangkat dan kunjungi http://chls.pro/ssl untuk mengunduh sertifikat Charles. Di Android 7+ (API 24+), diperlukan network_security_config.xml untuk mempercayai sertifikat pengguna di build Debug — jika tidak, aplikasi mungkin tidak mengarahkan lalu lintas melalui Charles.

Pengaturan di iOS

Untuk iOS: Pengaturan → WiFi → konfigurasi proxy ke IP dan port 8888. Kemudian Safari → http://chls.pro/ssl → instal profil sertifikat. Di iOS 10.3+, Anda perlu mengaktifkan kepercayaan sertifikat: Pengaturan → Umum → Tentang → Pengaturan Kepercayaan Sertifikat → aktifkan Charles Proxy. iOS lebih ketat dengan sertifikat: beberapa aplikasi mungkin menggunakan SSL Pinning, memblokir lalu lintas melalui Charles bahkan dengan sertifikat tepercaya.

Mengatasi Masalah SSL Pinning

Jika aplikasi menggunakan SSL Pinning (pemasangan sertifikat server), proxy standar melalui Charles tidak akan berfungsi — aplikasi akan menolak sertifikat Charles. Solusi: nonaktifkan SSL Pinning di build Debug melalui pengaturan OkHttp atau URLSession, gunakan Frida untuk melewati pinning saat runtime, atau gunakan Android Emulator dengan akses root.

Skenario Praktis Penggunaan Charles Proxy

Charles Proxy memecahkan tugas pengembangan dan pengujian spesifik. Mari kita lihat skenario paling umum di mana alat ini sangat diperlukan.

Debugging Integrasi API

Skenario paling umum — memeriksa kebenaran permintaan API. Charles menunjukkan URL permintaan yang tepat, header, body, parameter. Jika server mengembalikan respons yang tidak terduga, segera terlihat: struktur JSON, kode kesalahan, header respons. Ini memungkinkan membedakan kesalahan sisi klien dari kesalahan sisi server tanpa log dari kedua sisi.

Pengujian dengan Koneksi Lambat

Menggunakan profil Throttle, Anda dapat menguji bagaimana aplikasi berperilaku dalam kecepatan koneksi rendah: apakah indikator pemuatan ditampilkan, apakah timeout ditangani dengan benar, apakah UI membeku saat kehilangan koneksi. Pengujian caching sangat penting — jika data sudah dimuat, aplikasi harus menampilkannya dari cache, bukan masuk ke pemuatan tak terbatas.

Mengedit Respons Server

Dengan Breakpoints, Anda dapat mengubah respons server sebelum dikirim ke aplikasi. Misalnya, mengembalikan array kosong alih-alih data, mengubah kode status menjadi 500, menambahkan field baru ke JSON. Ini memungkinkan pengujian penanganan kasus batas tanpa memodifikasi kode server — salah satu aplikasi terkuat Charles dalam pengembangan seluler.

Pertanyaan yang Sering Diajukan

Apakah Charles Proxy gratis?

Charles Proxy adalah produk komersial dengan masa percobaan 30 hari. Setelah masa percobaan berakhir, program terus bekerja dengan jeda 30 menit setiap kali dijalankan. Biaya lisensi adalah $50 per salinan. Ada alternatif gratis, seperti Proxyman (macOS) dan mitmproxy (lintas platform).

Dapatkah saya menyadap lalu lintas simulator iOS?

Ya, simulator iOS secara otomatis menggunakan proxy sistem macOS. Cukup jalankan Charles dan aktifkan SSL-proxy — semua lalu lintas simulator akan disadap. Pengaturan sertifikat untuk simulator terjadi secara otomatis, Anda hanya perlu mempercayai sertifikat Charles di keychain macOS.

Apa perbedaan Charles dengan Proxyman?

Perbedaan utama: Charles lintas platform (Windows, macOS, Linux), Proxyman — hanya macOS dan iOS. Charles memiliki set alat yang lebih luas (Rewrite, Map Local, Repeat, Auto Save) tetapi berbayar. Proxyman gratis untuk fungsionalitas dasar, dengan antarmuka modern dan integrasi asli dengan simulator iOS.

Bagaimana Charles Proxy memengaruhi kinerja?

Charles menambah latensi saat lalu lintas melewati proxy, terutama dengan SSL-proxy aktif (dekripsi/enkripsi). Di komputer modern, latensi adalah 5–15 milidetik per permintaan. Untuk pengujian kinerja, disarankan menonaktifkan SSL-proxy untuk sumber daya statis (CSS, JS, gambar) melalui Recording Control.

Bagaimana cara mengekspor sesi dari Charles?

Charles mendukung ekspor ke format: .chls (asli, untuk dibuka kembali di Charles), HAR (HTTP Archive, terbuka di browser dan alat lain), CSV (untuk diproses di Excel atau spreadsheet), Trace (untuk mengekspor permintaan tertentu dalam format kompatibel curl). Ekspor melalui menu File → Export Session.

Ringkasan

  • Charles Proxy — server proxy HTTP/HTTPS profesional untuk menyadap, melihat, dan memodifikasi lalu lintas jaringan sejak 2004
  • Prinsip Kerja — MITM-proxy: semua permintaan melewati Charles, memungkinkan analisis dan modifikasi secara langsung
  • Alat Kuat: Rewrite, Breakpoints, Map Local, Map Remote, Throttle — untuk debugging API komprehensif dan pengujian pengalaman pengguna
  • Proxy HTTPS memerlukan pemasangan sertifikat root Charles pada perangkat, dan untuk Android 7+ — network_security_config.xml di build Debug
  • Profil Throttle memungkinkan simulasi 3G, EDGE, DSL, dan jenis koneksi lain untuk menguji perilaku aplikasi dalam kondisi nyata
  • Ekspor Sesi ke format HAR, CSV, dan .chls untuk analisis, pelaporan, dan berbagi dengan tim
  • Untuk proyek dengan anggaran terbatas, pertimbangkan alternatif gratis: Proxyman (macOS) atau mitmproxy (lintas platform open-source)

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga