DNS und Cloudflare
NexCMP benötigt einen DNS-Namen — seine Hauptdomain — und funktioniert in zwei Modi.
Modus A: DNS verweist direkt auf den Server
- Erstellen Sie einen A-Record für
cloud.example.com → <server public IPv4>(sowie einen AAAA-Record, falls der Server über IPv6 verfügt). - Optional, falls von Ihnen genutzt:
admin.cloud.example.comundpartner.cloud.example.com, die auf dieselbe IP-Adresse verweisen. - Führen Sie den installer aus (bzw. erneut aus). Er erkennt, dass der Name auf die öffentliche IP-Adresse des Servers aufgelöst wird, und beschafft ein Let's-Encrypt-Zertifikat über die HTTP-01-Challenge auf Port 80.
Modus B: Die Domain wird von Cloudflare per Proxy durchgeleitet
Erstellen Sie dieselbe Einträge mit der orangefarbenen Wolke (Proxied). Das Installationsprogramm erkennt, dass der Name sich nur in Cloudflare-Adressen auflöst, und wechselt in den Cloudflare-Modus:
- nginx lauscht weiterhin auf 80/443 auf Ihrem Server;
- die echte IP des Besuchers wird aus dem
CF-Connecting-IP-Header gelesen — nur bei Verbindungen aus den veröffentlichten IP-Bereichen von Cloudflare, sodass sie von niemand anderem gefälscht werden kann; - das Zertifikat wird über Let's Encrypt bezogen (Cloudflare leitet die Challenge an Ihren Ursprung weiter); falls das noch nicht möglich ist, wird ein selbstsigniertes Ursprungszertifikat erstellt, damit der Modus „Full“ funktioniert, und ein späterer erneuter Durchlauf des Installers aktualisiert auf Let's Encrypt.
Sie können diesen Modus mit --behind-cloudflare erzwingen.
::: important SSL/TLS-Modus in Cloudflare festlegen Gehen Sie in Cloudflare zu SSL/TLS › Overview und wählen Sie Full (strict), sobald der Installer ein Let's Encrypt-Zertifikat meldet. Verwenden Sie bei einem selbstsignierten Ursprungszertifikat Full. Flexible führt zu Weiterleitungsschleifen. :::
TIP
Wenn „Always Use HTTPS“ aktiv ist, sendet Cloudflare die Validierungsanfrage an Port 443 Ihres Ursprungs. Der Installer handhabt dies, indem er zuerst das temporäre selbstsignierte Zertifikat erstellt und dann Let's Encrypt erneut versucht.
Überprüfung
bash
dig +short cloud.example.com # A record (a Cloudflare address in mode B)
curl -I https://cloud.example.com/healthz
sudo certbot certificates # certificate name, domains and expiryZertifikate werden automatisch über den Timer von certbot erneuert. Die Erneuerung verwendet das Webroot /var/www/nexcmp-acme, daher muss Port 80 erreichbar bleiben (direkt oder über Cloudflare).
Häufige Probleme
| Symptom | Ursache | Behebung |
|---|---|---|
| Installer meldet „DNS … does not point to … (nor to Cloudflare) — skipping nginx/TLS“ | DNS-Eintrag fehlt, ist falsch oder noch nicht propagiert | Eintrag korrigieren, auf Propagation warten, Installer erneut ausführen. |
Browser zeigt ERR_TOO_MANY_REDIRECTS hinter Cloudflare | SSL-Modus ist Flexible | Setzen Sie Full (strict) (oder Full). |
| Cloudflare-Fehler 525/526 | Ursprungszertifikat abgelehnt | Verwenden Sie Full mit einem selbstsignierten Ursprungszertifikat oder Full (strict) mit Let's Encrypt. |
| In den Protokollen zeigen alle Besucher Cloudflare-IPs | Nicht im Cloudflare-Modus | Führen Sie den Installer mit --behind-cloudflare erneut aus. |
Mehr dazu unter Installation errors.