liyansong
liyansong

Reputation: 869

Charles Proxy Response unreadable

Recently I want to use Charles to help me debug my web code. However, when I logged out response, it was unreadable. How could I deal with that? I need to see those actual text in response.

Unreadable code in response

Upvotes: 56

Views: 66533

Answers (11)

Yogin
Yogin

Reputation: 1

  1. First right click on the URL you want to decrypt to enable SSL Proxying Enable proxy

  2. Go to Proxy -> SSL Proxying Setting -> Check if Enable SSL Proxy is enabled and there is the field which you just right-click to enable proxy

  3. Go to Keychain, search for Charles and change the field trust to "Always trust"

  4. Restart your Charles and voila.

Upvotes: 0

Noah Tran
Noah Tran

Reputation: 3604

If the response text is unreadable, it means that the SSL Proxying doesn't set up properly. Check the following steps to fix it:

  1. Help Menu -> SSL Proxying -> Install Charles Root Certificate
  2. Open Keychain and search Charles Proxy
  3. Double Click to open and select Always Trust for all dropdowns.
  4. Back to Charles Proxy -> Right Click on the domain you need to intercept -> Enable SSL Proxying
  5. Enjoy!

If it's too complicated, you can checkout Proxyman, which has a feature to do all steps automatically by going Certificate Menu -> Install Certificate on macOS

Install Certificate

Upvotes: 4

Zgpeace
Zgpeace

Reputation: 4477

solution one: Simple enable ssl proxying on right click for specific url:

solution two: Setting all the port 443 request/response, using SSL Proxying.
step 1: click the menu Proxy > SSL Proxying Settings
enter image description here
step 2: select tab SSL Proxying > add > Host input "*", Port input "443" > OK > OK
enter image description here
step 3: Restart Charles. Bingo.

Upvotes: 13

ishandutta2007
ishandutta2007

Reputation: 18274

For me no one answer sufficed,

  1. Did this: https://stackoverflow.com/a/42969202/865220

  2. But even after doing that I found for few hosts/urls it was not decrypting, so I had to do this: https://stackoverflow.com/a/49147470/865220

  3. Now my pip install <any package> stopped working because of this, so I had to do this: https://stackoverflow.com/a/49910594/865220

Upvotes: 0

Javi Villar
Javi Villar

Reputation: 117

You must intalls a SSL certificate on your device. Be sure that you are connected to Charles proxy and the try to go to the followin url: chls.pro/ssl (if you are using an Android device you can use Chrome and if you are using an iOS device you must use Safari)

You will be able to add the certificate on your computer as well, if you don't do it, you will not be able to use your browser when Charles is working.

Upvotes: 2

macL0vin
macL0vin

Reputation: 183

Steps in this video helped me to solve this problem https://www.youtube.com/watch?v=_tPvZjHPSC8

Basically you need to download a certificate to your device(simulator). Open safari and go to chls.pro/ssl and install it. Then on the device go to settings->general->about->Certificate Thrust settings and enable the certificate. Then enable SSL proxy in Charles by going to Proxy tab->SSL proxy and voila.

Upvotes: 9

Bartłomiej Semańczyk
Bartłomiej Semańczyk

Reputation: 61834

Simple enable ssl proxying on right click for specific url:

enter image description here

Upvotes: 35

guozqzzu
guozqzzu

Reputation: 899

If your are running Charles v3.10 or later, please do the follow steps:

  1. Open your Charles, select Help -> SSL Proxying -> Install Charles Root Certificate

1]

  1. Charles will install a Certificate to you Mac . Double click the Certificate and set the value of Secure Sockets Layer(SSL) to Always Trust

2]

  1. Set the mobile phone's WiFi's Server same with the Mac IP Address

  2. Restart your Charles

Upvotes: 5

TheRealRonDez
TheRealRonDez

Reputation: 2807

Make sure you install a certificate on to your device .. or it will not work.

Upvotes: 0

Samantha
Samantha

Reputation: 103

you'll often see what looks like gibberish there because the response hasnt completed. (Note that the connection you highlighted has not completed and is not providing a 200 HTTP Status.) If you select Hex on the bottom of the Charles window, you can view what was completed in Hexadecimal. It can be translated but the text view you are looking at for incomplete calls like that is always going to look like gibberish.

Try to view the call's response again when it is completed.

If you're having trouble getting calls to complete. That is a separate issue. Try the SSL connection and install a certificate like the others commented about. That can be found on Charles toolbar Help>SSL Proxying > Charles Root Certificate Help.

Upvotes: 1

Dmitri Lihhatsov
Dmitri Lihhatsov

Reputation: 439

In Charles, click Help -> SSL Proxying and then choose Install Charles Root Certificate either for your computer or a mobile device.

Upvotes: 5

Related Questions