

How It Works
When a client sends an HTTP CONNECT request to establish an HTTPS tunnel, Rockxy intercepts the connection, generates a certificate for the target host, and performs two separate TLS handshakes — one with the client (using the generated certificate) and one with the real server. The client sees a valid certificate signed by Rockxy’s root CA. As long as the root CA is trusted in the macOS Keychain, the client accepts it without errors.Entry Points
| Action | How to Access |
|---|---|
| Install Root CA | Certificate > Install Root CA |
| SSL Proxying List | Tools > SSL Proxying List… |
| Certificate Inspector | Select an HTTPS request > Certs tab in the inspector |
Certificate Setup
Follow these steps to enable HTTPS interception:- Generate Root CA — Rockxy automatically generates a root CA certificate on first launch. No manual action needed.
- Install to Keychain — Open
Certificate → Install Root CAfrom the menu bar. Rockxy adds the root CA to your macOS login Keychain. - Trust the Certificate — Open Keychain Access, find the “Rockxy CA” certificate, double-click it, expand “Trust”, and set “When using this certificate” to Always Trust.
- Restart Target Apps — Some apps cache TLS sessions. Restart them after trusting the CA to pick up the change.
Root CA Certificate
Rockxy generates its root CA using the swift-certificates library:- Key type — P-256 (ECDSA)
- Validity — 10 years from generation date
- Storage — private key stored in the macOS Keychain via
SecKeychain - Subject — “Rockxy CA” with a unique serial number per installation
The root CA private key never leaves your Mac. It is stored exclusively in the macOS Keychain and is not exported or transmitted anywhere. Each Rockxy installation generates its own unique root CA.
Per-Host Certificates
When Rockxy encounters an HTTPS request to a new hostname, it generates a certificate for that host on the fly:- Signed by — your local Rockxy root CA
- Subject Alternative Name — matches the requested hostname
- Cache — LRU cache holding approximately 1,000 certificates in memory
- Generation time — typically under 5 ms per certificate
Certificate Inspector
For any HTTPS request, the Certs tab in the request inspector displays the full certificate chain from the remote server:- Leaf certificate — the server’s own certificate with subject, issuer, validity dates, and SANs
- Intermediate certificates — any intermediate CAs in the chain
- Root certificate — the root CA that anchors the chain
SSL Proxying List
By default, Rockxy does not decrypt any HTTPS traffic. You must add domains to the SSL Proxying List to enable interception for specific hosts. OpenTools → SSL Proxying List… to manage the list:
- Add domains individually (e.g.,
api.example.com) or with wildcards (e.g.,*.example.com) - Enable/disable individual rules without removing them
- Presets — one-click to add common API domains (googleapis.com, github.com, stripe.com, etc.)
- Import/Export — share SSL proxying lists as JSON files between machines
Security Considerations
To remove the root CA and disable HTTPS interception:- Open Keychain Access
- Search for “Rockxy CA”
- Right-click and select Delete
- Restart any apps that cached the TLS session
Troubleshooting
Certificate not trusted
Symptom: Browsers show “Your connection is not private” or apps fail with TLS errors. Fix: Open Keychain Access, find “Rockxy CA”, and verify the trust setting is “Always Trust”. If missing, reinstall viaCertificate → Install Root CA.
App uses certificate pinning
Symptom: A specific app refuses to connect through Rockxy even though other apps work fine. Fix: Apps with certificate pinning (many banking, security, and first-party Apple apps) reject any certificate not matching their pinned set. Exclude these apps from the proxy or use the Rule Engine to bypass specific domains.Proxy port conflict
Symptom: Rockxy fails to start with a “port already in use” error. Fix: Another process is using port 9090. Check withlsof -i :9090 and either stop the conflicting process or change Rockxy’s port in Settings.
Stale TLS sessions
Symptom: HTTPS interception works for new domains but not for previously visited ones. Fix: Some apps and browsers cache TLS sessions. Restart the target app after installing and trusting the Rockxy root CA.Next Steps
Traffic Capture
Learn the full traffic capture workflow and inspector features
Traffic Rules
Block, redirect, or modify HTTPS requests with the Rule Engine
