Reputation: 11
I tried to intercept the requests on my android and iOS apps using charles proxy. On android i'm able to see the requests and response without issues however on iOS it's not working fine. I receive:
SSL handshake with client failed - Remote host terminated the handshake
You may need to configure your browser or application to trust the Charles Root Certificate. See SSL Proxying in the Help menu.
The manual proxy is correctly configure on the device, and i already trusted the charles certification on my iphone. I'm quite sure that all configs are correctly set up.
I'm wondering if it's a limitation on my iOS app. Any ideia?
Thanks in advance
Upvotes: 1
Views: 2919
Reputation: 681
I have experienced the same situation with iOS simulator for iOS 16.2. I wasn't able to properly intercept requests with Charles and my app couldn't get data. In my case the problem was due to an expired certificate. I will describe the steps I have followed just in case it happens to someone else:
Settings > General > Device Management
Charles > Help > SSL Proxying > Reset Charles Root Certificate
Download and install the new Charles Proxy CA from: https://chls.pro/ssl
In iOS, go to Settings > General > About > Certificate Trust Settings
. Enable the "Charles Proxy CA".
More info: https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/
Upvotes: 1
Reputation: 6695
You might need to tell your device to trust the certificate.
From this page on the Charles Proxy website:
If you are on iOS 10.3 or later, open the Settings.app and navigate to General > About > Certificate Trust Settings, and find the Charles Proxy certificate, and switch it on to enable full trust for it (More information about this change in iOS 10).
Upvotes: 1