iOS devices and Charles

This setup guide will help you configure Charles and your device so you can view your app’s network traffic in plain text.


NOTE: You can’t view/intercept the traffic of apps with a pinned certificate. Most apps with sensitive data, e.g. banking apps, will block you from viewing/intercepting their traffic. If you just want to play around with Charles, I suggest using the Weather app as it’s certificate hasn’t been pinned

Still having issues? See common iOS problems

Prerequisites

Check Wi-Fi networks

Make sure your Mac and iOS device are on the same Wi-Fi network

Find your Mac’s local IP address

Open Charles -> Help -> Local IP address.

Make note of the IP address as you will need to enter it into your device later

Navigate to device’s Wi-Fi proxy screen

On iOS device, tap Settings -> Wi-Fi -> tap the correct Wi-Fi network -> Configure Proxy -> select “Manual”

Configure proxy settings

This step will proxy all of your device’s internet traffic through your Mac

  • Server: this is your Mac’s local IP address
  • Port: 8888

Accept incoming network traffic from your device

On your device, open Safari and go to www.google.com

Return to your Mac. You should now see a prompt from Charles. Click “Allow”

Encrypted traffic from your device should now appear in Charles

Download Root certificate for iOS device

Return to the device, open Safari and go to chls.pro/ssl.

Tap “Allow” to download the root certificate

Install Root certificate

On the device, tap Settings -> General -> Profile -> Tap the Charles Proxy certificate -> Install

If you want to learn more about Root certificates, this is a good article

Trust Root certificate

On the device, tap Settings -> General -> Certificate Trust Settings -> Enable the toggle/switch for the Charles Proxy certificate

Turn on SSL proxying to view traffic in plain text

Return to your Mac, right click the network request you are interested in and click the “Enable SSL Proxying” option

I am using the iOS “Weather” app in this example

Kill and re-open the app

Kill and re-launch the Weather app. You should now see the network traffic in plain text!

Still having problems?

See article about common iOS problems

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: