Using Charles Proxy to test Apps and Websites using SSL

Using Charles Proxy to test Apps and Websites using SSL

Note: If you’re new to Charles Proxy, you may need to read my earlier post on Using Charles Proxy for bandwidth throttling testing to get started on this.

Update: There is now also a Charles Proxy iOS app, which allows you to do the following:

  • Capture HTTP and HTTPS network traffic on your device
  • SSL Proxying so you can view your SSL / TLS requests in plain text
  • View requests and responses in the app, or share each request or a whole session to Charles on your desktop

 

Many apps and websites now use Secure Sockets Layer (SSL) to encrypt communications between clients and servers.

In order to test these with Charles Proxy, some extra steps need to completed.

1. A Charles Proxy certificate needs to installed on the client side – either on the mobile device using the app or the system using the SSL website.
2. In Charles Proxy itself, the option SSL Proxying Settings is used to enable and setup SSL Proxying.

Here are some example setups:

To use Charles Proxy with an app using SSL

1. Setup the test device e.g. iPhone to use Charles Proxy, as shown in https://www.patwalsh.co.uk/using-charles-proxy-for-bandwidth-throttling-testing/
2. Follow the instructions in https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/ to setup a Charles Proxy certificate on the test device
3. Setup Charles Proxy with the SSL Proxy Settings for the required server, which maybe be done using a server name (e.g. *.domain.com) and/or an API (e.g. api.domain.com) and make sure Enable SSL Proxying is ticked

With all these three items setup, you should then be able to use Charles Proxy with an app using SSL.

To use Charles Proxy with a website using SSL

1. Follow the instructions in https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/ to setup a Charles Root Certificate on the browser/system you’ll be browsing the SSL site from
2. Setup Charles Proxy with the SSL Proxy Settings for the required server and make sure Enable SSL Proxying is ticked

You should then be able to use Charles Proxy with a website using SSL

 

I’ve also added a post on Using Charles Proxy to test different HTTP Server Response Codes

 

About my testing services: iOS App Testing / Android App Testing / Website Testing