Common Problems – iOS

Last updated: 22 Nov 2022

Here are some of the common issues people face when working with iOS and Charles. Details on how to fix these issues have also been included.


# This Connection Is Not Private

Safari tells me my internet connection is not private!

This means you have successfully installed the Charles certificate but not yet “trusted” it

How to “Trust” the certificate

Settings -> General -> About -> Certificate Trust Settings -> enable the toggle for the Root certificate

# Trust device’s Root certificate

I’ve installed the Root certificate and ‘Enabled SSL Proxying’ but the Response is empty or blank

If you have decrypted the SSL traffic but the Response is empty, it may mean you haven’t trusted the device’s root certificate

How to fix it?

Settings -> General -> About -> Certificate Trust Settings -> enable the toggle for the Root certificate

# Time Outs

The app or browser keeps timing out

Check if the local IP address of your Mac has changed

If it has changed, it means your device can no longer talk to your Mac. Essentially your iOS device has no internet connection!

# Access Denied

My IP address hasn’t changed and I still can’t see traffic from my device on Charles

If you see a message in the bottom left-hand corner of Charles about ‘Denying access ….’, the fix is actually quiet straightforward

Restart Charles. Return to your browser/app and reload the page/screen

Go back to Charles and you should now see a dialog (see next screenshot below) about accepting a connection from you device

Click ‘Allow’

Why did this happen?

This error can occur if you dismiss the dialog (by clicking the red circle) or accidentally click ‘Deny’ button

The dialog message says “If you deny this you will not be asked again for this host address until you restart Charles”.

Managing local IP address

The ‘Access Control Settings’ screen lists the local IP addresses of all devices that can communicate with your instance of Charles

# Expired MacOS/iOS Root Certificate

Charles has stopped decrypting traffic!

To comply with Apple’s changes to certificate expiry dates, from Charles 4.6 onwards, all certs will have a 1 year expiry date

Read this article to create a new cert

TL;DR – “reset” the Charles root cert

# Using a work laptop

I’ve done everything and Charles STILL doesn’t connect

If you are using a work laptop and Charles still isn’t working, check if there is any pre-install software that could stop Charles from working e.g. Zscaler, Cisco Umbrella

If you do use Zscaler (or a 2nd proxy on your laptop), follow these setup instructions

15 thoughts on “Common Problems – iOS

      1. Thanks for your prompt reply!!

        I tried all the steps as mentioned in above shared link however unfortunately unable to fix it.

        Like

  1. Hello everyone!
    I’m trying to set up my iOS device with Charles and I’m facing some strange things:
    1. Today is the Dec, 21th 2021 but the certificate I’m downloading has an expiration date of 29 November 2021
    2. I’ve downloaded the profile and marked the certificated as trusted but still see an empty response (like if the root certificate is not trusted)
    I did the same on Android the same day and everything works.
    Is the expired certificate may cause this issue? How to get a fresh one?
    thanks!

    Like

    1. Hi Daria, I’ve done a bit a research and it looks like, since September 2020, Apple now forces certificates to have 1 year expiry dates, read article. I also had a look at the Charles Proxy release notes for 4.6 and it says “Fix new SSL CA certificates to be compatible with iOS and macOS changes”. I’ll add a new section to this page to cover this specific issue. Thanks for highlighting it (I wasn’t aware of this change until now!)

      Like

    2. Hi Daria, to fix your issue, in Charles, if you go to Help -> SSL Proxying -> Reset Charles Root Certificate… and then follow the prompts it should issue you with a new root certificate. Alternatively, delete the root cert from Keychain and install a new one

      Like

  2. Hi, I have an iPhone with iOS 16. I have successfully installed Charles Proxy and the certificate is verified and valid until Sep 2023. However, when I connect to the proxy server, my internet connection drops every time. My desktop and mobile are both on the same WiFI network. I have an Android 12 device as well that works on the same network without any problems. Is there a solution to this problem for iOS? Thanks

    Like

    1. Hi Pierre, can you send a video/screenshots of what you are doing? I’m happy to help. Once we figure out what your issue is; I can add the details to this page so it can help the next person!

      Like

      1. Hi Thank you very much for your assistance. I have attached 7 screenshots to show the flow, starting with the settings on my desktop using Windows 10 (images 1 to 4). Image #4 shows the log which seems to time out on https://captive.apple.com. The last three images show my iOS device (iPhone 11/iOS 16.0), the certificate installed, the proxy setting, and the last one shows the internet connection is dropped. I have checked that both devices are on the same network and I have also rebooted my router. In addition, I have closed all apps except for the Chrome browser and still have the same issue. As mentioned before, I have no issue running Charles with an Android 12 mobile device.

        I hope this all helps and thanks again Pierre

        Like

  3. I managed to solve my problem by Trusting the Certificate. I was initially confused when I went to Settings>VPN & Device Management. When I tapped on the Charles Certificate it said that it was verified, which led me to believe it was Trusted. To solve the issue I had to go to Settings>General>About and then scroll down to the bottom of the page to find and tap on “Certificate Trust Settings”. I turned on the toggle switch and was asked to “Trust”.

    Like

  4. Hi, I am able to see that Charles intercepts my iOS device traffic, but when I try to download a Charles root certificate on my iPhone i am getting no response from ssl.charles/. There is still the status “Waiting for response”. No prompt on Safari to download a cert. Do you know how to solve this issue? I am using Windows 11, iPhone running iOS 16, Charles 4.6.3.

    Like

    1. Was that a typo in your comment? Did you mean to say “http://chls.pro/ssl” (this is the correct url to download the cert)?

      Like

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 )

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: