SSL Proxying
APXY can intercept HTTPS (TLS) traffic by acting as a man-in-the-middle proxy, generating leaf certificates on-the-fly signed by its root CA.
HTTPS interception modes
APXY supports three levels of HTTPS inspection:
| Mode | What’s captured | Privacy |
|---|---|---|
| Tunnel (default) | Nothing — encrypted passthrough | Highest |
| Metadata | Headers only, no bodies | Medium |
| Deep | Full request and response | Full inspection |
HTTPS MITM is opt-in by default for privacy. Traffic is tunneled without inspection unless you explicitly enable it.
Web UI
Open SSL from the Modify group. The page provides:
- A list of domains with SSL interception enabled
- Add domain form to enable HTTPS interception for a new domain
- Enable/disable toggles for each domain
- Delete buttons to remove domains from the list
When you create a mock rule for an HTTPS URL in the Mock Rules page, APXY automatically enables SSL interception for that domain.
CLI
Enable SSL interception
# Enable deep inspection for a specific domain
apxy ssl enable --domain api.example.com
# Disable SSL interception
apxy ssl disable --domain api.example.com
# List domains with SSL interception
apxy ssl listStartup flags
You can also configure SSL behavior at startup:
# Enable deep inspection for specific domains from startup
apxy start --ssl-domains "api.example.com,api.staging.com"
# Bypass cert-pinned apps (tunnel without MITM)
apxy start --bypass-domains "app.datadoghq.com,*.apple.com"
# Deep inspect ALL HTTPS traffic
apxy start --mitm-allAutomatic with mock rules
When you create a mock rule for an HTTPS URL, APXY automatically enables SSL interception for that domain.
Certificate management
# Generate root CA (first time)
apxy certs generate
# View CA info
apxy certs info
# Trust CA in macOS Keychain
sudo apxy certs trustSee Certificate Setup for platform-specific instructions.
Custom Certificate Authorities
Requires a Pro or Personal license. See License Activation for details.
APXY lets you add your own Certificate Authorities bound to specific domain patterns. When APXY intercepts HTTPS traffic for a matching domain, it uses your custom CA to sign the leaf certificate instead of the default APXY root CA.
CLI
# Add a custom CA for a domain pattern
apxy certs custom add --domain "*.example.com" --cert ./my-ca.pem --key ./my-ca-key.pem
# List all custom CAs
apxy certs custom list
# Show details for a specific custom CA
apxy certs custom info --domain "*.example.com"
# Remove a custom CA by domain pattern
apxy certs custom remove --domain "*.example.com"
# Trust a custom CA in the system keychain
sudo apxy certs custom trust --domain "*.example.com"Web UI
- Open the SSL page from the Modify group
- Scroll to the Custom Certificate Authorities section
- Click Add CA
- Provide the domain pattern, CA certificate file, and private key file
- Click Save
Domain matching
Custom CAs are matched against the requested domain using these rules:
- Wildcard patterns —
*.example.commatches any subdomain ofexample.com - Exact match —
api.example.commatches only that specific domain - Fallback — if no custom CA matches, APXY uses its default root CA
Custom CAs persist across proxy restarts and are included when you export/import settings with apxy setup settings export and apxy setup settings import.
Proxy bypass
Exclude sensitive domains from proxying entirely using the --bypass-domains flag at startup:
apxy start --bypass-domains "sensitive-api.com,*.internal.corp"Bypassed domains are tunneled without any MITM — traffic passes through encrypted. This is required for apps with certificate pinning.
You can also use filter rules to exclude domains from being recorded (traffic is still forwarded):
apxy traffic filter set --type block --target "sensitive-api.com"