Alright, so I messed around with Charles Proxy today, and let me tell you, it was a bit of a journey. I wanted to see what this “capone” thing was all about, figured I’d try to capture some traffic and see what’s going on under the hood of some apps.
Getting Started
First, I downloaded Charles. Pretty straightforward, went to the website, grabbed the installer, and ran it. Boom, Charles is on my machine. Opened it up, and it looks… complicated. Lots of buttons, lots of panels. I felt a little overwhelmed, not gonna lie.

The First Hurdle: SSL
So, I tried to look at some traffic from, like, a regular website. But all I saw was a bunch of garbled mess. Turns out, pretty much everything is encrypted these days (which is good!), but it means Charles can’t just peek into the data without some help. This is where SSL Proxying comes in.
I had to install Charles’s root certificate. It was a bit confusing, navigating through the menus, finding the right options. After some digging, I located the “Help” menu, under the “SSL Proxying” section there was the option to install the certificate on the computer and also a mobile device, that’s very cool! I followed the instructions (which, thankfully, were pretty clear) and got the certificate installed. I even had to manually trust it in my system settings. Felt a bit like a hacker, which was kinda cool.
Mobile Adventures
Then I thought, “Let’s see what my phone is doing!” This was even trickier. I had to configure my phone’s Wi-Fi to use my computer as a proxy. Found the IP address of my computer, punched it into my phone’s Wi-Fi settings, along with the port Charles was using (8888, if you’re curious).
Then, another certificate installation! This time, on my phone. Charles prompted me with instructions, I browsed to a special URL on my phone, downloaded the certificate, and installed it. Again, had to go into my phone’s settings and explicitly trust this certificate. A little nerve-wracking, trusting a certificate I just generated, but hey, that’s how it works.
Finally, Some Data!
After all that setup, finally, I could see the actual data flowing between my phone and the internet. I could see the requests, the responses, the headers… everything! It was like having X-ray vision into my apps. I could see what APIs they were calling, what data they were sending, even the images they were loading.
Playing Around
I spent some time just browsing different apps and websites, watching the traffic in Charles. It’s pretty fascinating to see what’s going on behind the scenes. I could see how often an app was “phoning home,” what kind of tracking data it was sending, and so on.

It is amazing to see how the traffic behaves, seeing all of the requests made in the background is something really useful and also kind of frightening!
Wrapping Up
So, that was my day with Charles. It was a learning experience, for sure. A bit fiddly to set up, but once it’s working, it’s a powerful tool. I can see why developers and security folks use this thing. It’s like a superpower for understanding network traffic. I definitely feel like I’ve only scratched the surface, though. There’s a lot more to explore in Charles, and I’m kinda excited to dig deeper.