Set up Charles to proxy an iOS device
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.
Configure Charles
To configure Charles:
- Open the Proxy > Proxy Settings… menu.
- Click the Proxies tab, in the HTTP Proxy Port field and enter
8888
.
- Open the SSL Proxying Settings… menu.
- On the SSL Proxying tab, select the Enable SSL Proxying checkbox.
- By default, Charles will only perform SSL proxying for specific domains you include in the list.
- Click Add, and enter
*.*
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
*.tealiumiq.com
and*.tiqcdn.com
Tealium domains.
- Go to Help > SSL Proxying > Install Charles Root Certification a Mobile Device or Remote Browser…
- Make note of the instructions, specifically the IP address and URL to get the certificate, for example:
10.0.2.158
andhttp://charlesproxy.com/getssl
Configure your iOS device
To configure your iOS device:
- Go to Settings > Wi-Fi and connect to the same Wi-Fi network as your computer.
- Select the active Wi-Fi network details, and in the HTTP Proxy section select the Manual mode.
- In the Server and Port fields, enter the IP address and the port number (for example,
8888
) from the steps above.
- After you save your proxy settings on your iOS device, you will receive an alert from Charles on your computer asking you to allow the connection. Click Allow.
Install the Charles SSL certificate
To install the Charles SSL certificate on your iOS device:
- On your iOS device, open Safari and navigate to http://www.charlesproxy.com/getssl.
- Follow the instructions to install the certificate and allow the access.
For more information, see 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.
This page was last updated: July 18, 2023