Local SSL
What SSL provides locally
Section titled “What SSL provides locally”SSL (technically TLS) encrypts the connection between the browser and the web server. In production, this prevents third parties from reading or tampering with the traffic. In local development, there is no network to eavesdrop on – so encryption itself is rarely why you need SSL locally.
The real reason to run HTTPS locally is browser feature compatibility. Several browser APIs and web platform features are only available in secure contexts (pages served over HTTPS or from localhost). If you develop locally over plain HTTP and your production site uses HTTPS, you may encounter behavior differences that are hard to debug:
| Feature | Requires secure context |
|---|---|
| Service workers | ✅ |
| Web Authentication (WebAuthn / passkeys) | ✅ |
| Geolocation API | ✅ |
Secure cookies | ✅ |
| HTTP/2 | ✅ (in most browsers) |
| Camera / microphone access | ✅ |
| Payment Request API | ✅ |
If your project uses any of these, you need HTTPS locally.
Self-signed certificates vs. CA-signed certificates
Section titled “Self-signed certificates vs. CA-signed certificates”A production website uses a certificate signed by a trusted Certificate Authority (CA) – an organization like Let’s Encrypt or DigiCert whose root certificates are pre-installed in operating systems and browsers. When your browser sees a certificate signed by a known CA, it shows the padlock icon without any warning.
A self-signed certificate is signed by its own private key rather than by a CA. Browsers do not trust self-signed certificates by default because anyone can create one for any domain. The result is a browser warning (“Your connection is not private”) unless you explicitly tell your system to trust the certificate.
MAMP PRO generates self-signed certificates automatically for each site when you enable SSL. It also adds its root certificate to your macOS Keychain automatically, so all certificates it generates are trusted without browser warnings.
How MAMP PRO manages SSL
Section titled “How MAMP PRO manages SSL”When you create a site in MAMP PRO, the SSL environment is set up automatically (on first use, MAMP PRO prompts you to complete this one-time setup). MAMP PRO acts as its own local Certificate Authority – it generates a root CA certificate and uses it to sign individual certificates for each of your sites.
To enable HTTPS for a site, go to Sites › [site name] › SSL and turn on the Enable SSL switch. MAMP PRO will:
- Generate a certificate for the site’s domain
- Configure Apache or Nginx to serve the site over HTTPS
- Make the site accessible at
https://yoursite.local:443(or on port 443 if you are using standard ports)
HTTP and HTTPS ports
Section titled “HTTP and HTTPS ports”MAMP PRO uses non-privileged ports by default (8888 for HTTP, 8890 for HTTPS) to avoid requiring administrator access on every server start. If you prefer standard ports (80 for HTTP, 443 for HTTPS), go to Settings › Server › Ports and click 80, 81, 443, 7443, 3306, 11211 & 6379. Using standard ports means:
- URLs without port numbers:
https://myproject.local