I spent the whole afternoon messing around with Charles, and let me tell you, it was a pain in the butt. I needed to monitor some requests from a mobile app, so I grabbed my phone, opened up Charles, and started tinkering.
First things first, I had to install the root certificate on my phone. I opened up Charles, went to the “Help” menu, and found the “SSL Proxying” option. Clicked on “Install Charles Root Certificate on a Mobile Device or Remote Browser”. It popped up a window saying that I should configure my device to use Charles as its HTTP proxy and then browse to a specific address to download and install the certificate. Well, that was easy enough.
Next, I had to make sure my phone was using Charles as a proxy. Went into the Wi-Fi settings on my phone, found my network, and modified the proxy settings. I set the proxy hostname to the IP address of my computer and the proxy port to 8888, which is what Charles uses by default. Checked!
Now for the fun part – actually installing the certificate. On my phone’s browser, I went to that specific address from Charles, and it prompted me to download the certificate. Easy peasy. Then, I went into my phone’s security settings and installed the certificate from storage. It showed up in the list of user credentials, so I figured I was good to go.
Fired up the app I was trying to monitor, and… nothing. Charles wasn’t showing any traffic. What the heck? After some head-scratching, I realized I needed to enable SSL proxying for the specific host I was interested in. I went back to Charles, right-clicked on the host in the “Structure” view, and selected “Enable SSL Proxying.”
- Opened Charles on my computer.
- Went to “Help” -> “SSL Proxying” -> “Install Charles Root Certificate on a Mobile Device or Remote Browser”.
- Configured my phone to use Charles as a proxy: Wi-Fi settings -> Modify network -> Proxy settings.
- Browsed to the URL from Charles on my phone to download the certificate.
- Installed the certificate on my phone: Security settings -> Install from storage.
- Enabled SSL proxying for the specific host in Charles.
Tried the app again, and bam! There it was. All the traffic was flowing through Charles, and I could finally see those sweet, sweet requests. It took a bit of trial and error, but I finally got it working. Now I can see all the data coming in and out. It’s like magic, but with more steps. Man, tech can be a real headache sometimes, but it’s satisfying when you finally figure it out.
Finally got it working
So, if you’re ever trying to do this yourself, just follow those steps, and you’ll be golden. It might seem like a lot, but trust me, once you get the hang of it, it’s not too bad. Don’t give up, even if it doesn’t work the first time. Just keep trying, and you’ll eventually get there. After all of this, I finally did it. What a day!
At the end of the day, I successfully captured the requests from the mobile app. It was a long process, but definitely worth it. Now, I can analyze the data and move on to the next step of my project. It feels really good to finally get this done!