Skip to content
MAMP PRO Documentation

Local SSL

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:

FeatureRequires 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.

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:

  1. Generate a certificate for the site’s domain
  2. Configure Apache or Nginx to serve the site over HTTPS
  3. Make the site accessible at https://yoursite.local:443 (or on port 443 if you are using standard 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