{"id":18840607,"url":"https://github.com/lana-20/charles-notes","last_synced_at":"2026-01-29T17:30:18.710Z","repository":{"id":122235335,"uuid":"610580108","full_name":"lana-20/charles-notes","owner":"lana-20","description":"Notes on Charles Proxy","archived":false,"fork":false,"pushed_at":"2024-05-10T01:59:19.000Z","size":79,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-30T09:46:30.532Z","etag":null,"topics":["charles","charles-proxy","debugging","debugging-tool","mobile-testing","root-cause-analysis"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lana-20.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-07T03:45:39.000Z","updated_at":"2024-08-05T06:58:52.000Z","dependencies_parsed_at":"2024-05-10T02:45:14.863Z","dependency_job_id":null,"html_url":"https://github.com/lana-20/charles-notes","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lana-20%2Fcharles-notes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lana-20%2Fcharles-notes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lana-20%2Fcharles-notes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lana-20%2Fcharles-notes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lana-20","download_url":"https://codeload.github.com/lana-20/charles-notes/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239777801,"owners_count":19695369,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["charles","charles-proxy","debugging","debugging-tool","mobile-testing","root-cause-analysis"],"created_at":"2024-11-08T02:48:18.969Z","updated_at":"2026-01-29T17:30:18.643Z","avatar_url":"https://github.com/lana-20.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"**NOTE**: This repo has been refurbushed and published on Medium: https://medium.com/@begunova/charles-proxy-setup-for-desktops-and-mobile-devices-03c3fd28f882.\n\n\n# Notes on Charles Proxy\n\n🔵 [Structure Tab Icons](https://github.com/lana-20/charles-notes#structure-tab-icons)\n\n🔵 [Exclude a host from being recorded](https://github.com/lana-20/charles-notes#exclude-a-host-from-being-recorded)\n\n🔵 [Remove a host from a recorded session](https://github.com/lana-20/charles-notes#remove-a-host-from-a-recorded-session)\n\n🔵 [Remove sensitive information from a recorded session](https://github.com/lana-20/charles-notes#remove-sensitive-information-from-a-recorded-session)\n\n🔵 [What happens if Charles root certificate is not installed?](https://github.com/lana-20/charles-notes#what-happens-if-charles-root-certificate-is-not-installed)\n\n🔵 [Remove Charles root certificates](https://github.com/lana-20/charles-notes#remove-charles-root-certificates)\n\n🔵 [No internet connection after setting manual proxy](https://github.com/lana-20/charles-notes#no-internet-connection-after-setting-manual-proxy)\n\n🔵 [Miscellaneous issues](https://github.com/lana-20/charles-notes#miscellaneous-issues)\n\n- \u003ccode\u003eStructure\u003c/code\u003e tab groups HTTP requests by host.\n- \u003ccode\u003eSequence\u003c/code\u003e tab shows each HTTP request individually sorted by oldest first.\n\n## Structure Tab Icons\n\nEach host on the Structure tab has one of these four icons:\n\n\u003cimg width=\"800\" src=\"https://user-images.githubusercontent.com/70295997/223364085-653d4c6a-5cea-4172-a8e4-66f7467db215.png\"\u003e\n\n📋 To summarize: lock 🔒 icon means SSL proxying is not enabled for that HTTPS host; lightning ⚡️ in the icon means the host is using HTTP/2 protocol.\n\n## Exclude a host from being recorded\n\nExample scenario: I have Slack Chat open in the background when recording a Charles session and I don't want that to show up in my session.\n\nSolution: go to \u003ccode\u003eProxy \u003e Recording Settings \u003e Exclude \u003e Add\u003c/code\u003e.\n\nLet's say I want to exclude \u003ccode\u003exkcd.com\u003c/code\u003e and subdomains e.g. \u003ccode\u003eimgs.xkcd.com\u003c/code\u003e, then I can simply enter \u003ccode\u003e*xkcd.com\u003c/code\u003e in the **Host** field. For more advanced filters, click **Help** for examples/explanations.\n\n\u003cimg width=\"800\" src=\"https://user-images.githubusercontent.com/70295997/223409076-1287c887-a343-42c2-8a70-66f745e9981a.png\"\u003e\n\nDouble-click on any existing entry to edit it.\n\nAvoid excluding any host that is accessed by the website or app under test (AUT).\n\n📝 I had issues where hosts that are added to the \u003ccode\u003eExclude\u003c/code\u003e list still show up on the session. Curiously, all the problematic ones are HTTPS hosts, whereas the HTTP hosts were excluded without issues. After some time (in the range of a few hours, up to about a day), the issues went away by themselves so I'm not sure what happened there.\n\n## Remove a host from a recorded session\n\nExample scenario: a scenario similar to *exclude a host*, except that I didn't add the host in the \u003ccode\u003eExclude\u003c/code\u003e list. So the host ended up being recorded in the session. I want to remove that from the session.\n\nSolution: Select the host on the Structure tab, right-click \u003e \u003ccode\u003eClear\u003c/code\u003e.\n\n\u003cimg width=\"800\" src=\"https://user-images.githubusercontent.com/70295997/223327698-2dd156c5-f589-47b2-b1ae-99d048d942ac.png\"\u003e\n\nAvoid accidentally removing any host that is accessed by the website or or app under test (AUT).\n\n## Remove sensitive information from a recorded session\n\nSometimes I have to use my own account to test an app or website in a cycle. It's important to make sure sensitive information like password is removed or is not present in the recorded session before I upload it as an attachment.\n\nOne way is to only start the recording after I log in. That way my login information won't even show up on the recorded session in the first place.\n\nAlternatively, I can press \u003ccode\u003eCtrl+F\u003c/code\u003e and search with some keywords like \"password\". I'll see something like the screenshot below. \n\n📝 I can right-click on any result and click \u003ccode\u003eRemove\u003c/code\u003e, but it only removes that result from the search results and not from the recorded session.\n\n\u003cimg src=\"https://user-images.githubusercontent.com/70295997/223346635-7592ac9d-8470-44a8-a85b-d83dc51f6a8f.png\" width=800\u003e\n\nDouble-click any search result to open up that particular request.\n\n\u003cimg src=\"https://user-images.githubusercontent.com/70295997/223347072-06cdbe9a-8ca7-42da-abbd-ac7025c93d9f.png\" width=800\u003e\n\nOnce certain that it is the request with the sensitive information, right-click and select \u003ccode\u003eClear\u003c/code\u003e.\n\n\u003cimg src=\"https://user-images.githubusercontent.com/70295997/223347252-6abc4411-f78e-4828-a8fe-84ca9535dac1.png\" width=800\u003e\n\nRepeat as necessary.\n\n## What happens if Charles root certificate is not installed?\n\nWhen I have Charles running without having a root certificate installed, most of the sites will browse just fine. But for hosts where I have enabled SSL proxying (by going to \u003ccode\u003eProxy \u003e SSL Proxy Settings...\u003c/code\u003e and adding an entry), I'll get an error as seen in the images below.\n\n\u003cimg width=\"1000\" src=\"https://user-images.githubusercontent.com/70295997/223410164-72a58d78-0d91-4b12-9738-018c1c7086f2.png\"\u003e\n\n\u003ccode\u003eYour connection is not private\u003c/code\u003e or \u003ccode\u003eDid Not Connect: Potential Security Issue\u003c/code\u003e error page, as seen on Chrome 110 and Firefox 110.\n\n\u003cimg width=\"1000\" src=\"https://user-images.githubusercontent.com/70295997/223370290-cbd15c07-8d32-4d3a-93d0-d8948b002dbf.png\"\u003e\n\n## Remove Charles root certificates\n\n#### ✰ Chromium-based browsers\n*Tested with Chrome 110*\n\n- [ ] Windows\n  - [ ] Open the Run window \u003ccode\u003eWin+R\u003c/code\u003e, type \u003ccode\u003ecertmgr.msc\u003c/code\u003e and press \u003ccode\u003eEnter\u003c/code\u003e. If the the root certificate was added under \u003ccode\u003eTrusted Root Certification Authorities\u003c/code\u003e during the root certificate installation steps, then go there and look for \u003ccode\u003eCharles Proxy CA\u003c/code\u003e Right-click on it and click \u003ccode\u003eDelete\u003c/code\u003e.\n  \n    \u003cimg width=\"800\" src=\"https://user-images.githubusercontent.com/70295997/223412820-0d9426fd-0b55-42bd-af75-a4a5cefc03d3.png\"\u003e\n    \n  - [ ] Alternatively, go to \u003ccode\u003eControl Panel \u003e Internet Options \u003e Content \u003e Certificates \u003e Trusted Root Certification Authorities\u003c/code\u003e, click on \u003ccode\u003eCharles Proxy CA\u003c/code\u003e and click \u003ccode\u003eRemove\u003c/code\u003e.\n\n- [ ] macOS\n  - [ ] Remove the certificate via the Chrome browser \u003ccode\u003eSettings\u003c/code\u003e as depicted below:\n\n    \u003cimg width=\"1000\" src=\"https://user-images.githubusercontent.com/70295997/223425947-9e8ab919-7b31-4363-98fe-5de86e2b81ee.png\"\u003e\n\n  - [ ] Alternatively, go to \u003ccode\u003eSpotlight Search \u003e Keychain Access \u003e login \u003e Certificates\u003c/code\u003e, click on \u003ccode\u003eCharles Proxy CA\u003c/code\u003e and click \u003ccode\u003eDelete\u003c/code\u003e.\n    \n    \u003cimg width=\"800\" src=\"https://user-images.githubusercontent.com/70295997/223432431-2bc3b421-ddb3-4902-9e11-733560536f56.png\"\u003e\n\n#### ✰ Firefox\n*Tested with Firefox 110*\n\n- [ ] **Windows**\n  - [ ] Firefox default directory for certificates is \u003ccode\u003e%USERPROFILE%\\AppData\\Local\\Mozilla\\Certificates\u003c/code\u003e or \u003ccode\u003e%USERPROFILE%\\AppData\\Roaming\\Mozilla\\Certificates \u003c/code\u003e on Windows. Locate the Charles certificate at the path, right-click on it and click \u003ccode\u003eDelete or Distrust\u003c/code\u003e.\n  - [ ] Alternatively, click the navigation drawer menu in the browser's top-right corner and select \u003ccode\u003eSettings\u003c/code\u003e. Go to \u003ccode\u003eOptions \u003e Privacy \u0026 Security \u003e View Certificates \u003e Authorities tab\u003c/code\u003e. Scroll down to \u003ccode\u003eXK72Ltd\u003c/code\u003e, click \u003ccode\u003eCharles Proxy CA\u003c/code\u003e, click \u003ccode\u003eDelete or Distrust\u003c/code\u003e and click \u003ccode\u003eOK\u003c/code\u003e.\n  \n    \u003cimg width=\"1000\" src=\"https://user-images.githubusercontent.com/70295997/223414802-09c33ce2-b3d5-4019-ac0a-925972c90994.png\"\u003e\n    \n- [ ] **macOS**\n  - [ ] [Firefox default directory for certificates](https://support.mozilla.org/en-US/kb/setting-certificate-authorities-firefox) is \u003ccode\u003e~/Library/Application Support/Mozilla/Certificates\u003c/code\u003e on macOS. Locate the Charles certificate at this path, right-click on it and click \u003ccode\u003eMove to Trash\u003c/code\u003e.\n  \n    \u003cimg width=\"600\" src=\"https://user-images.githubusercontent.com/70295997/223615601-4ea52929-2c49-4584-a0f0-972391a0d207.png\"\u003e\n\n  - [ ] Alternatively, perform removal via the Firefox browser \u003ccode\u003eSettings\u003c/code\u003e, similar to the Windows flow illustrated above.\n\n    \u003cimg width=\"1000\" src=\"https://user-images.githubusercontent.com/70295997/223579659-867d1a84-7996-4c05-8622-a30d0e0c3d42.png\"\u003e\n\n#### ✰ Android 13\n\nGo to Settings. Search \"certificates\" and tap \u003ccode\u003eTrusted credentials\u003c/code\u003e. Go to \u003ccode\u003eUser\u003c/code\u003e tab and look for root certificate with words like:\n\n    XK72 Ltd.\n    Charles Proxy CA\n\nTap on the certificate and tap \u003ccode\u003eRemove\u003c/code\u003e.\n\n## No internet connection after setting manual proxy\n\n### Scenario (Windows 10):\nI set the manual proxy on my phone to the computer running Charles. When I try to browse a website on the phone, I expect to see a prompt on Charles about an unauthorized device trying to connect, as per the [Charles documentation](https://www.charlesproxy.com/documentation/configuration/access-control/). But I don't see that prompt, and my phone appears to have no internet connection. Even after manually adding the phone's local IP to \u003ccode\u003eProxy \u003e Access Control Settings\u003c/code\u003e, there is still no internet access on my phone and Charles is not recording any network activity on the phone.\n\n### Solution:\n\n1. Open Start. Type \"network status\" and click the matching item.\n2. Click \u003ccode\u003eChange connection properties\u003c/code\u003e.\n3. Under \u003ccode\u003eNetwork Profile\u003c/code\u003e, select \u003ccode\u003ePrivate\u003c/code\u003e(it was originally set to \u003ccode\u003ePublic\u003c/code\u003e).\n\nCharles may need be restarted. Fiddler, however, works fine without having to change the \u003ccode\u003eNetwork Profile\u003c/code\u003e to \u003ccode\u003ePrivate\u003c/code\u003e\n\n## Miscellaneous issues\n\n❓ Charles is not recording network traffic on Firefox but it is working fine on Chrome and Edge.\n\n👉Go to \u003ccode\u003eOptions \u003e Settings\u003c/code\u003e (under Network Proxy), and make sure **Use system proxy settings** is selected. If I'm getting **Your connection is not secure** on HTTPS sites after that, I may have to visit [https://chls.pro/ssl](https://chls.pro/ssl) and select **Trust this CA to identify websites** to install the SSL certificate on Firefox.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flana-20%2Fcharles-notes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flana-20%2Fcharles-notes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flana-20%2Fcharles-notes/lists"}