MarsEdit + MAMP PRO (HTTPS) lokal einrichten – Schritt-für-Schritt

MarsEdit + MAMP PRO (HTTPS) lokal einrichten – Schritt-für-Schritt

Ziel: MarsEdit auf deinem MacBook (Client) soll sich sicher per HTTPS mit deiner lokalen WordPress-Site auf dem Mac mini (Server mit MAMP PRO) verbinden. Wir verwenden mkcert, um vertrauenswürdige, lokale Zertifikate zu erstellen.

Setup aus diesem Leitfaden:
Server: Mac mini mit MAMP PRO (Host codekeks.test)
Client: MacBook Air (von dort aus MarsEdit)
DNS/Hosts: codekeks.test → 127.0.0.1 (lokal) bzw. auf Client passend eingetragen


Inhaltsverzeichnis

  1. Voraussetzungen
  2. Überblick: Was passiert technisch?
  3. mkcert auf dem Server installieren & CA vertrauen
  4. Host-Zertifikat für codekeks.test erzeugen
  5. Zertifikat in MAMP PRO einbinden
  6. WordPress-URLs auf HTTPS setzen
  7. HTTPS testen (curl)
  8. mkcert-CA auf den Client kopieren und vertrauen
  9. Erneut testen – jetzt vom Client
  10. MarsEdit korrekt verbinden
  11. Ports & IPv6 beachten
  12. Typische Stolperfallen & Troubleshooting
  13. Security-Hinweise
  14. Kurze Checkliste (Copy & Paste)

1) Voraussetzungen

  • macOS (Server & Client)
  • MAMP PRO auf dem Server (Mac mini)
  • Homebrew auf dem Server installiert
  • MarsEdit auf dem Client (MacBook)
  • Schreibrechte auf beide Systeme (GUI/Terminal)

2) Überblick: Was passiert technisch?

  • mkcert erstellt eine eigene, lokale CA und Host-Zertifikate, die für deinen lokalen Domainnamen (z. B. codekeks.test) ausgestellt sind.
  • Diese CA muss auf allen Geräten, die deine Site per HTTPS aufrufen (Server, Client), als vertrauenswürdig eingetragen sein.
  • MAMP PRO bekommt Zertifikat (.crt/.pem) + Key (.key/.pem) deines Hosts.
  • MarsEdit spricht typischerweise XML-RPC (/xmlrpc.php) über HTTPS an.

3) mkcert auf dem Server (Mac mini) installieren & CA vertrauen

brew install mkcert
mkcert -install

Wenn der -install Schritt meckert („no user interaction was possible“), dann am Mac mini direkt (GUI) die CA eintragen:

  • Speicherort der CA finden:
  mkcert -CAROOT
  open "$(mkcert -CAROOT)"

Dort liegt rootCA.pem.

  • Schlüsselbundverwaltung öffnen (Programme → Dienstprogramme)

System auswählen → Kategorie Zertifikate
rootCA.pem reinziehen, doppelklicken → Vertrauen: Immer vertrauen (SSL)

CLI-Variante (lokal, nicht headless):

sudo security add-trusted-cert -d -r trustRoot \
  -k /Library/Keychains/System.keychain \
  "$(mkcert -CAROOT)/rootCA.pem"


4) Host-Zertifikat für codekeks.test erzeugen

Wechsle in deinen Projektordner (Beispiel):

cd /Applications/MAMP/htdocs/codekeks.test
mkcert -key-file codekeks.test.key -cert-file codekeks.test.crt \
  codekeks.test localhost 127.0.0.1 ::1

Ergebnis:

  • codekeks.test.crt (Zertifikat)
  • codekeks.test.key (Privater Schlüssel)

Achte darauf, genau die Hostnamen zu nennen, die du wirklich nutzt (ohne/mit www, IPv6, localhost).


5) Zertifikat in MAMP PRO einbinden

1) MAMP PRO → Hosts → codekeks.test → SSL aktivieren
2) Certificate file: codekeks.test.crt
3) Key file: codekeks.test.key
4) Server neu starten

Falls MAMP Dateiendungen erzwingt: .crt/.key sind ok. (.pem ginge ebenfalls.)


6) WordPress-URLs auf HTTPS setzen

Option A (empfohlen, eindeutig): in wp-config.php fest verdrahten:

define('WP_HOME',    'https://codekeks.de');
define('WP_SITEURL', 'https://codekeks.de');

Option B: in der Datenbank (wp_optionssiteurl & home) auf https://codekeks.de stellen.


7) HTTPS auf dem Server testen

curl -Iv https://codekeks.de/xmlrpc.php

Erwartung:

  • TLS-Handshake ohne Fehlermeldung
  • HTTP-Status oft 405 Method Not Allowedgut (zeigt: XML-RPC existiert & ist erreichbar)


8) mkcert-CA auf den Client (MacBook) kopieren & vertrauen

Auf dem Server (Mac mini):

cp "$(mkcert -CAROOT)/rootCA.pem" ~/Downloads/macmini-mkcert-rootCA.pem
scp ~/Downloads/macmini-mkcert-rootCA.pem andy@MacBookAir.local:~/Downloads/

Auf dem Client (MacBook Air)GUI-Weg:

  • Schlüsselbundverwaltung → SystemZertifikate
  • ~/Downloads/macmini-mkcert-rootCA.pem hineinziehen
  • Doppelklick → Vertrauen: Immer vertrauen (SSL)

CLI-Weg (Client):

sudo security add-trusted-cert -d -r trustRoot \
  -k /Library/Keychains/System.keychain \
  ~/Downloads/macmini-mkcert-rootCA.pem


9) Erneut testen – vom Client

curl -Iv https://codekeks.de/xmlrpc.php

Erwartet: Kein „unable to get local issuer certificate“.
Wieder ist 405 Method Not Allowed ein gutes Zeichen.

Tipp (nur für Tests):
Falls DNS/IPv6 querfunkt, kannst du IPv4 erzwingen:
„`bash
curl -Iv –resolve codekeks.test:443:192.168.0.85 https://codekeks.de/xmlrpc.php
„`
Oder /etc/hosts auf dem Client:
192.168.0.85 codekeks.test


10) MarsEdit korrekt verbinden

  • Blog URL: exakt so, wie das Zertifikat ausgestellt ist:

https://codekeks.de (ohne www)

  • Port: Wenn MAMP nicht auf 443 lauscht (z. B. 8889), dann:

https://codekeks.de:8889

MarsEdit verwendet bei WordPress standardmäßig XML-RPC. Stelle sicher, dass /xmlrpc.php nicht von Security-Plugins blockiert wird (s. Troubleshooting).


11) Ports & IPv6 beachten

  • MAMP PRO → Ports:

Wenn möglich, stelle 80/443 ein (klassisch).
Ansonsten den HTTPS-Port in der MarsEdit-URL mit angeben.

  • IPv6:

Dein Client nimmt ggf. IPv6 bevorzugt. Prüfe, ob codekeks.test im Netz korrekt auf deinen Server zeigt.
Für lokale Entwicklung ist oft IPv4 + /etc/hosts am stabilsten.


12) Typische Stolperfallen & Troubleshooting

„unable to get local issuer certificate“ (Client)
→ mkcert-CA ist auf dem Client (MacBook) nicht als vertrauenswürdig installiert.
Fix: Schritt 8 befolgen.

„no user interaction possible“ beim mkcert -install
→ Tritt auf, wenn der System-Keychain ohne GUI-Bestätigung nicht geändert werden kann (SSH/headless).
Fix: Am Gerät (GUI) installieren oder CLI-Befehl lokal ausführen (siehe Schritt 3).

Zertifikat/Hostname passt nicht
→ Du rufst www.codekeks.test auf, hast aber nur codekeks.test ausgestellt (oder umgekehrt).
Fix: Hostname genau passend in mkcert angeben, ggf. beide Varianten.

XML-RPC geblockt (403/401)
→ Security-Plugins/Firewall blockieren /xmlrpc.php.
Fix: In Plugin-Settings freigeben oder testweise deaktivieren.
405 ist okay, 403/401 nicht.

Mixed Content / Weiterleitungen
→ WordPress siteurl/home nicht auf HTTPS gesetzt.
Fix: Schritt 6.

Zeit/Datum falsch
→ Zertifikate wirken „abgelaufen“ oder „noch nicht gültig“.
Fix: Systemzeit prüfen.

Zertifikat wird von MAMP nicht geladen
→ Falscher Pfad/Datei‐Endung, Server nicht neu gestartet.
Fix: Pfade prüfen, neu starten, ggf. .crt/.key statt .pem verwenden.


13) Security-Hinweise

  • Gib niemals rootCA-key.pem weiter. Nur die öffentliche rootCA.pem.
  • mkcert-Zertifikate sind nur für lokale Entwicklung gedacht. Nicht im Internet verwenden.
  • Zugriffsschutz (Firewalls, nur internes Netz) für deinen MAMP-Server beachten; XML-RPC ist eine potenzielle Angriffsfläche, wenn öffentlich erreichbar.

14) Kurze Checkliste (Copy & Paste)

[ ] Server: brew install mkcert
[ ] Server: mkcert -install (ggf. CA manuell in System-Keychain „Immer vertrauen“)
[ ] Server: mkcert -key-file codekeks.test.key -cert-file codekeks.test.crt codekeks.test localhost 127.0.0.1 ::1
[ ] MAMP PRO: Host „codekeks.test“ → SSL an → Zert/Key setzen → Server neu starten
[ ] WP: WP_HOME / WP_SITEURL = https://codekeks.de
[ ] Server-Test: curl -Iv https://codekeks.de/xmlrpc.php  (TLS ok, 405 ist gut)
[ ] Client: rootCA.pem vom Server kopieren & in System-Schlüsselbund „Immer vertrauen“
[ ] Client-Test: curl -Iv https://codekeks.de/xmlrpc.php
[ ] MarsEdit: Blog URL exakt (ggf. mit Port) → https://codekeks.de[:PORT]
[ ] Plugins/Firewall: blockiert XML-RPC? 403/401 → erlauben/konfigurieren
[ ] Optional: /etc/hosts (Client) auf IPv4 zeigen lassen, wenn IPv6 stört


Fertig! Damit ist deine lokale HTTPS-Verbindung stabil, MarsEdit vertraut dem Zertifikat, und dein Workflow bleibt sicher & bequem. Viel Spaß beim Posten 🚀