This article will show you how to set up Charles and iOS devices so that you can capture HTTPS traffic from iOS devices using Charles.
Step 0: Download and install Charles from https://www.charlesproxy.com/

Step 1: Find the IP address of your mac:
Ifconfig | grep “inet “

Step 2: Find the port number Charles uses listens on. It should be 8888 if you haven’t change the default value. You can find the number from Settings-->Proxy Settings


Step 3: You need set up the proxy on the iOS device.
On the iOS device, Settings → Wi-Fi, click on the little i icon next to the Wi-Fi.

Change HTTP PROXY to Manual, type in the IP Address and Port number of your mac.

Step 4: Go back to Charles, set filters, so that Charles only record the connections your are interested. You don't have to do this step, in case you don't want Charles are flooded with records you are not interested as it will record everything.

Just include the urls you want to record.

Now, if you trigger HTTPS connections from your iOS app, you will find they are recorded by Charles, but the messages are encrypted. You can’t find any useful information from i.

Step 5: Enable SSL Proxying. Right click the URL, and check “Enable SSL Proxying”

You still won’t be able to get any useful information at this stage, as you iOS does not trust the certificate Charles provides.

Step 6: Install Charles’ certificate
Open Safari from your iOS device and browse to: http://www.charlesproxy.com/getssl
Your iOS device will ask you to install the certificate. Just do it.


That is it. Now you should be able to all the details of the connections.
