This guide explains the steps to configure Charles to proxy HTTP traffic from your iOS device.  This guide applies to version 3.10 and higher of Charles.

This is an updated version of the previous tutorial for Charles version 3.7.

Table of Contents Placeholder

Configuring Charles

  1. Open the Proxy > Proxy Settings... menu.
  2. On the Proxies tab, enter "8888" in the HTTP Proxy Port field.

    charles-proxy-settings.jpg

     

  3. Open the SSL Proxying Settings... menu.
  4. On the SSL Proxying tab check the Enable SSL Proxying.

    Cursor_and_SSL_Proxying_Settings_and_Charles_3_10_1_-_Session_1__.jpg

    Try adding a location of *.* in the location list above.  If your app ceases to function correctly, it's possible that the app is rejecting the self-signed certificate from Charles Proxy. If this happens, disable the wildcard match, and list only the Tealium domains. Recommended domains are: *.tealiumiq.com *.tiqcdn.com
  5. Go to Help > SSL Proxying > Install Charles Root Certification a Mobile Device or Remote Browser...
  6. Make note of the instructions, specifically the IP address and URL to get the certificate eg. 10.0.2.158 and http://charlesproxy.com/getssl

Cursor_and_SSL_Proxying_and_Help.jpg

Configuring Your iOS Device

  1. Go to Settings > Wi-Fi and connect to the same Wi-Fi network as your computer.
  2. Select the active Wi-Fi network details and in the HTTP Proxy section choose the Manual mode.
  3. In the Server and Port fields enter the IP address and the port number (probably "8888") from the steps above.

_1000x1000-3.png

Once you save your proxy settings on your iOS device you should receive an alert from Charles on your computer asking you to allow the connection. Click Allow.

Cursor_and_Connection_from_10_0_3_132.jpg

Installing the Charles SSL Certificate on Your iOS Device

  1. On your iOS device, pen Safari and navigate to this URL: http://www.charlesproxy.com/getssl
  2. Follow the instructions to install the certificate and allow the access.

_1000x1000-4.png

 

More info: http://www.charlesproxy.com/documentation/using-charles/ssl-certificates/

 

Ensure the device trusts the certificate by going to Settings > General > About > Certificate Trust Settings. If the certificate is not trusted, SSL requests will fail in the proxy.