How to inspect HTTPS traffic on a Mac
When you want to know exactly what an app or a website is sending, you need to read its HTTPS requests. The catch is in the S: the traffic is encrypted, so you can't just watch the network. This is how you read it on macOS, how the decryption actually works, and why a few apps will still refuse to cooperate.
How it works
You run a proxy on your Mac and send your traffic through it. For plain HTTP that's enough. For HTTPS, the proxy sits in the middle of the connection: it presents its own certificate to your app, decrypts the request, then makes its own encrypted connection onward. Your app only accepts that certificate because you've told your Mac to trust it. Nothing here is a trick played on you — it's a man-in-the-middle of your own traffic, on your own machine, with your own permission.
That last point matters. This reads your traffic: apps you're building, or services you're allowed to test. It is not a way to read other people's connections, and it won't.
STEP 1
Run a proxy that can decrypt TLS
You need a tool built for this, not a generic VPN or packet sniffer. Charles, Proxyman, Reqable and elcapture all do it; mitmproxy does it from the terminal. The rest of these steps describe elcapture, but the shape is the same everywhere.
STEP 2
Trust its certificate
The first time elcapture runs, it generates a root certificate on your Mac and offers to add it to your login keychain as trusted. Click through that once. The private key stays on your Mac and is used only to sign certificates for the sites you inspect. Without this step every HTTPS request shows up as a failed, unreadable connection, because your app is correctly refusing a certificate it doesn't trust.
STEP 3
Point your traffic at it
Flip the system-proxy toggle. elcapture sets macOS to route HTTP and HTTPS through it and puts the setting back when you quit, so you don't end up with no internet after closing the app. Browsers and most Mac apps follow the system proxy automatically. To watch a phone, put it on the same Wi-Fi and set its proxy to your Mac's IP — for Android, elcapture can do the certificate and proxy over adb in one step.
STEP 4
Read the requests
Use the app. Each request appears in the list with its method, host, path, status and timing. Click one to see headers and body on both sides, decoded and pretty-printed. From there you can filter to a host, set a breakpoint to pause and edit a request, map a response to a local file, or replay it in the API client.
When an app still won't show
Two things trip people up.
Certificate pinning. Some apps ship with their server's certificate baked in and reject anything else, including yours. These requests appear as handshake failures no matter what you trust. Getting past pinning is a separate job — on a rooted or emulated Android device, a Frida script can disable it — and it's deliberately not a one-liner.
Apps that ignore the system proxy. A few apps make connections without honoring macOS proxy settings, so they never reach your proxy at all. For those you need to force the traffic through at a lower level rather than relying on the system setting.