Wildcard-DNS-Setup
Wildcard-DNS ermöglicht Mandanten-Subdomains wie acme.yourdomain.com, techcorp.yourdomain.com usw. Dies ist optional — FeedbackPulse funktioniert auch gut mit Slug-basierten URLs (z. B. /wall/acme-corp) ohne Wildcard-DNS.
Brauche ich Wildcard-DNS?
| Szenario | Wildcard-DNS erforderlich? |
|---|---|
Mandanten nutzen Slug-basierte öffentliche Seiten (/wall/acme-corp) | Nein |
Mandanten möchten eine eigene Subdomain (acme.yourdomain.com) | Ja |
Mandanten bringen ihre eigene Domain (feedback.acme.com) | Nein (stattdessen CNAME verwenden) |
Was Sie benötigen
- Ein Wildcard-DNS-A-Eintrag:
*.yourdomain.com→ Ihre Server-IP - Ein Wildcard-SSL-Zertifikat: deckt
*.yourdomain.comab - Webserver-Konfiguration: akzeptiert alle Subdomains
Schritt 1: DNS-Eintrag hinzufügen
Gehen Sie in das DNS-Verwaltungspanel Ihres Domain-Registrars und fügen Sie hinzu:
| Typ | Name/Host | Wert | TTL |
|---|---|---|---|
| A | * | 123.456.789.0 (Ihre Server-IP) | 300 |
Sie benötigen außerdem den regulären A-Eintrag für die Root-Domain:
Typ Name/Host Wert A @123.456.789.0
Anbieter-spezifische Anleitungen
Cloudflare
- Bei Cloudflare Dashboard anmelden
- Ihre Domain auswählen
- Zu DNS → Einträge gehen
- Auf Eintrag hinzufügen klicken
- Typ:
A| Name:*| IPv4: Ihre Server-IP | Proxy: Nur DNS (graue Wolke) - Auf Speichern klicken
Wichtig: Für Wildcard-Subdomains den Cloudflare-Proxy auf Nur DNS setzen (graue Wolke), nicht auf Proxied (orangefarbene Wolke). Cloudflares kostenloses Abo proxyt keine Wildcard-Subdomains.
Namecheap
- Anmelden → Domain-Liste → Ihre Domain verwalten
- Zu Erweitertes DNS gehen
- Auf Neuen Eintrag hinzufügen klicken
- Typ:
A-Eintrag| Host:*| Wert: Ihre Server-IP | TTL: Automatisch - Speichern
GoDaddy
- Anmelden → Meine Produkte → DNS für Ihre Domain
- Auf Eintrag hinzufügen klicken
- Typ:
A| Name:*| Wert: Ihre Server-IP | TTL: 600 - Speichern
Google Domains / Google Cloud DNS
- Zu Google Domains gehen
- Ihre Domain auswählen → DNS
- Unter Benutzerdefinierte Einträge hinzufügen:
- Host:
*| Typ:A| Daten: Ihre Server-IP - Speichern
AWS Route 53
- Zu Route 53 → Hosted Zones → Ihre Domain auswählen
- Auf Eintrag erstellen klicken
- Eintragsname:
*| Eintragstyp:A - Wert: Ihre Server-IP | TTL:
300 - Auf Einträge erstellen klicken
DigitalOcean DNS
- Zu Networking → Domains gehen
- Ihre Domain auswählen
- Hinzufügen: Typ
A| Hostname*| Zeigt auf: Ihre Server-IP | TTL:300
Hetzner DNS
- Zur Hetzner DNS Console gehen
- Ihre Zone auswählen
- Eintrag hinzufügen: Typ
A| Name*| Wert: Ihre Server-IP
Schritt 2: Wildcard-SSL-Zertifikat beziehen
Option A: Let's Encrypt mit DNS-Challenge (kostenlos)
Wildcard-Zertifikate von Let's Encrypt erfordern eine DNS-01-Challenge (nicht HTTP):
# Certbot mit DNS-Plugin für Ihren Anbieter installieren
# Beispiel: Cloudflare
sudo apt install certbot python3-certbot-dns-cloudflare
# Cloudflare-Anmeldedatei erstellen
sudo mkdir -p /etc/letsencrypt
sudo nano /etc/letsencrypt/cloudflare.ini
Ihren Cloudflare-API-Token hinzufügen:
dns_cloudflare_api_token = your_cloudflare_api_token_here
sudo chmod 600 /etc/letsencrypt/cloudflare.ini
# Wildcard-Zertifikat beziehen
sudo certbot certonly \
--dns-cloudflare \
--dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini \
-d yourdomain.com \
-d "*.yourdomain.com"
DNS-Plugins für andere Anbieter
| Anbieter | Certbot-Plugin | Installation |
|---|---|---|
| Cloudflare | python3-certbot-dns-cloudflare | sudo apt install python3-certbot-dns-cloudflare |
| Route 53 | python3-certbot-dns-route53 | sudo apt install python3-certbot-dns-route53 |
| DigitalOcean | python3-certbot-dns-digitalocean | sudo apt install python3-certbot-dns-digitalocean |
| Google Cloud | python3-certbot-dns-google | sudo apt install python3-certbot-dns-google |
Option B: Manuelle DNS-Challenge
Wenn Ihr DNS-Anbieter kein Certbot-Plugin hat:
sudo certbot certonly --manual --preferred-challenges dns \
-d yourdomain.com -d "*.yourdomain.com"
Certbot fordert Sie auf, einen TXT-Eintrag zu erstellen. Folgen Sie den Anweisungen.
Einschränkung bei manueller Challenge: Sie müssen alle 90 Tage manuell erneuern und den DNS-TXT-Eintrag jedes Mal aktualisieren.
Option C: Kostenpflichtiges Wildcard-Zertifikat
Kaufen Sie bei Anbietern wie:
- Comodo/Sectigo (ca. 70 $/Jahr)
- DigiCert (ca. 400 $/Jahr)
- RapidSSL (ca. 125 $/Jahr)
Schritt 3: Webserver konfigurieren
Lesen Sie die Wildcard-Abschnitte in:
- Apache-Konfiguration — Abschnitt „Wildcard-Subdomain-Unterstützung"
- Nginx-Konfiguration — Abschnitt „Wildcard-Subdomain-Unterstützung"
Wichtig: ServerAlias *.yourdomain.com (Apache) oder server_name yourdomain.com *.yourdomain.com; (Nginx) verwenden.
Schritt 4: Funktionalität prüfen
# DNS-Auflösung für eine Subdomain testen
dig test.yourdomain.com
# Sollte Ihre Server-IP im ANSWER-Abschnitt zurückgeben
# Mit curl testen
curl -I https://anything.yourdomain.com
# Sollte 200 oder Weiterleitung zurückgeben (nicht „could not resolve host")
Schritt 5: FeedbackPulse konfigurieren
Ihre .env-Datei aktualisieren:
# Session-Domain setzen, um Cookies über Subdomains hinweg zu erlauben
SESSION_DOMAIN=.yourdomain.com
# Ihre Haupt-App-URL (ohne Subdomain)
APP_URL=https://yourdomain.com
Beachten Sie den führenden Punkt in
SESSION_DOMAIN=.yourdomain.com— dieser erlaubt es Session-Cookies, über alle Subdomains hinweg zu funktionieren.
Wie Subdomains in FeedbackPulse funktionieren
Wenn eine Anfrage bei acme.yourdomain.com eingeht:
- Die
ResolveTenant-Middleware extrahiert die Subdomain (acme) - Sie sucht den Mandanten mit
subdomain = 'acme' - Wenn gefunden, wird der Mandant als aktueller Kontext gesetzt
- Der Benutzer sieht die Login-Seite oder das Dashboard des Mandanten
Mandanten legen ihre Subdomain bei der Registrierung fest. Sie können sie auch manuell im Admin-Panel setzen.
Nächste Schritte
- SSL-Zertifikate — weitere SSL-Konfigurationsdetails
- Benutzerdefinierte Domains — Mandanten ihre eigenen Domains nutzen lassen