HTTPS-Konfiguration ohne Reverse Proxy
Standardmäßig ist CrispyCMS für den Betrieb hinter einem Reverse Proxy optimiert, wobei das Frontend auf Port 80 und die API auf Port 81 über HTTP kommunizieren. In Szenarien, in denen TLS direkt in der Anwendung terminiert werden soll, bietet CrispyCMS jedoch die Möglichkeit, natives HTTPS zu aktivieren. In diesem Modus werden alle Anfragen über die Standard-Ports 80 (HTTP-Redirect) und 443 (HTTPS) abgewickelt, wobei die Trennung zwischen Frontend und API über Hostnames erfolgt.
Wenn natives HTTPS aktiviert ist, wird der Port 81 deaktiviert. Sollten die spezifischen Zertifikat-Pfade oder die Domain-Liste für die API nicht korrekt hinterlegt sein, ist ein Aufruf der API nicht mehr möglich.
Konfiguration über Umgebungsvariablen
Die Aktivierung und Steuerung des TLS-Modus erfolgt ausschließlich über Umgebungsvariablen. Hierbei müssen sowohl die Pfade zu den Zertifikatsdateien als auch die dedizierten Domains für die API-Schnittstelle definiert werden.
Zertifikatspfade für das Frontend
Das Frontend lauscht in diesem Modus auf allen eingehenden Domains; ein expliziter Host kann hier nicht gesetzt werden.
- NGINX_FRONTEND_CERT_PATH:
/certs/dev.crispycms.de.pem– Der absolute Pfad zum SSL-Zertifikat des Frontends. - NGINX_FRONTEND_KEY_PATH:
/certs/dev.crispycms.de.key– Der absolute Pfad zum privaten Schlüssel des Frontends.
Zertifikatspfade und Domains für die API
Für die API-Schnittstelle ist die Definition aller drei folgenden Variablen zwingend erforderlich:
- NGINX_API_CERT_PATH:
/certs/api.dev.crispycms.de.pem– Pfad zum API-Zertifikat. - NGINX_API_KEY_PATH:
/certs/api.dev.crispycms.de.key– Pfad zum API-Key. - NGINX_API_DOMAINS:
api.dev.crispycms.de– Eine Liste der Domains (vHost), unter denen die API erreichbar sein soll.
Port-Weiterleitung und Netzwerk
Sobald das native HTTPS-Feature genutzt wird, ändert sich das Netzwerkverhalten des Containers signifikant. Da Port 81 entfällt, müssen Sie sicherstellen, dass die Ports 80 und 443 explizit an den Container weitergeleitet werden.
Erweiterte Nginx-Konfiguration
Für fortgeschrittene Setups können zusätzliche, eigene Nginx-Konfigurationsdateien in das System eingebunden werden. CrispyCMS inkludiert automatisch alle .conf Dateien aus den folgenden Verzeichnissen:
| Zielbereich | Verzeichnispfad |
|---|---|
| API vHost | /etc/nginx/api.crisp.conf.d/*.conf |
| Frontend vHost | /etc/nginx/crisp.conf.d/*.conf |
Dies erlaubt es Entwicklern, spezifische Header, Cache-Regeln oder Sicherheitsrichtlinien pro vHost zu definieren, ohne die Basis-Konfiguration des CMS verändern zu müssen.