Discourse und Cloudflare

Ja, die HTTP-01-Herausforderung funktioniert in Verbindung mit Cloudflare im „Orange Cloud“-Modus. Aber sie funktioniert nicht über HTTPS, die HTTP-01-Herausforderung funktioniert nur über Port 80, und:

Viele Leute, die Cloudflare betreiben, stellen Cloudflare so ein, dass HTTP automatisch zu HTTPS umgeleitet wird, und das macht Port 80 auf dem Ursprungsserver unzugänglich und das verhindert, dass HTTP-01-Herausforderungen funktionieren.

Wenn Sie diese Weiterleitungen also nicht aktivieren, wird es funktionieren.

Das ist also streng genommen unwahr.
Let’s Encrypt wird fehlschlagen, wenn Cloudflare so eingestellt ist, dass der Datenverkehr über Port 80 umgeleitet wird, bevor er den Ursprungsserver erreicht.

2 „Gefällt mir“

Ich stimme zu, aber da IT-Sicherheit heute wichtiger ist als je zuvor und die Leute mehr mit Zero-Trust-Produkten arbeiten, zu denen CF Tunnel gehört, werden wir eine Zunahme der Nutzung dieser Art von Technologie sehen und sollten sie auch sehen. Deshalb habe ich es angesprochen.

Ich glaube, Sie haben missverstanden, wie die HTTP-01-Herausforderung von LE funktioniert.
Sie sucht nach dem Token, das Certbot oder eine andere Variante des LE-Clients meistens in den Unterordner .well-known des Webservers legt.
Aber es ist nicht fest einprogrammiert, die Anfrage auf Port 80 zu starten, HTTP-Code-Umleitungen zu ignorieren und sofort abzubrechen, wenn es den Token nicht finden kann.
Die HTTP-01-Herausforderung kann HTTP-Umleitungen (also 301 und 302) folgen und kann daher den Ordner .well-known über 443 und HTTPS lesen.
Und der Grund, warum es mit Cloudflare Universal SSL MIT Umleitung (und Cloudflare Tunnel) funktioniert, ist, dass Cloudflare anstelle des Webservers auf Port 80 antwortet, die Anfrage auf 443 umleitet, wo LE den Token lesen kann und die CA das Zertifikat ausstellen kann.

Überblick über den Ablauf:

Certbot startet HTTP-01

  • POSTet Zertifikatsanfrage an CA und legt Token in .well-known
  • CA startet GET für Token auf FQDN Port 80
  • CF leitet auf Port 443 um und sichert die Anfrage mit seinem Universal SSL-Zertifikat
  • Anfrage wird an den Webserver selbst weitergeleitet (über CF Tunnel oder direkt)
  • CA kann den Token in .well-known abrufen, da Port 443 den Token auf die gleiche Weise präsentieren kann, wie es HTTP und Port 80 tun würden
  • CA POSTet die RAW-Zertifikatsdaten und Certbot erstellt die Dateien

Ich habe im März ein Thema gestartet, in dem ich nach aktuelleren Details oder Anleitungen zur Implementierung von Cloudflare gesucht habe.

Ich suche immer noch danach :slight_smile:

Ich nutze Cloudfront als CDN, möchte aber den DDoS-Schutz hinzufügen, den Cloudflare bietet. Wir werden oft bombardiert :confused:

Ich glaube, ich verstehe es ziemlich gut. Sie haben Recht, es kann auf HTTPS umgeleitet werden, aber es hängt von den Cloudflare-Einstellungen und der Webserverkonfiguration ab, ob das funktioniert oder nicht, da zunächst kein gültiges Zertifikat auf dem Ursprungsserver vorhanden ist.

Ja, sie können auf einen anderen Port umgeleitet werden, aber HTTP-01-Herausforderungen müssen immer auf Port 80 beginnen.

Siehe Challenge Types - Let's Encrypt

Die HTTP-01-Herausforderung kann nur auf Port 80 durchgeführt werden. Das Zulassen, dass Clients beliebige Ports angeben, würde die Herausforderung weniger sicher machen, und daher ist dies nach dem ACME-Standard nicht zulässig.

2 „Gefällt mir“

Ich stimme zu, ich habe nur auf Ihre Ungenauigkeit hingewiesen, dass es niemals funktionieren wird.


Die Zitierung meines Satzes, die Sie hier durchgeführt haben, ist ziemlich böse, da sie den falschen Diskussionsumstand suggeriert und eine andere Bedeutung impliziert. Mein vollständiger Satz war

und der wichtige Teil meines Satzes war die Kombination aus “fest einprogrammiert, die Anfrage über Port 80 zu starten” UND “ignoriert jegliche HTTP-Umleitung” UND “schlägt sofort fehl”, da Sie sagten

und das impliziert, dass der Grund für das Fehlschlagen der HTTP-01-Challenge allein die Umleitung ist, was nicht stimmt.
Auch macht eine Umleitung streng genommen Port 80 nicht “unzugänglich”.

Es war keine böse Absicht oder Intention.

Er macht Port 80 des Ursprungsservers für jeglichen Traffic, der auf den Hostnamen gerichtet ist, unverfügbar.

Ich mag den aktuellen Ton der Konversation in diesem Thema nicht, daher werde ich es entfolgen.

Meine Meinung zu Cloudflare in Kombination mit Discourse lässt sich als „viele Leute können es offenbar nicht richtig konfigurieren, daher würde ich generell davon abraten, es zu aktivieren. Wenn Sie es zum DDoS-Schutz nutzen möchten, dann würde ich empfehlen, es nur mit sehr spezifischen Einstellungen zu aktivieren.“ zusammenfassen.

6 „Gefällt mir“

Das ist eine klare Aussage, danke.

3 „Gefällt mir“

Dies mag eine weitere dumme Frage sein, aber da ich nur ein finnisches Publikum bediene, sehe ich keinen Grund, Cloudflare zu verwenden, daher kenne ich es nur vom Hörensagen.

Aber wenn sein einziger Vorteil die Abwehr von DDoS ist und DDoS meist nur zu viele Aufrufe bedeutet, die von

  • nutzlosen SEO-Crawlern
  • anderen Bots von Script Kiddies
    gemacht werden,
    warum dann nicht Nginx vor Discourse stellen und bekannte User Agents dort stoppen? In Kombination mit Fail2ban würde das die Last um etwa 90 % reduzieren (sicher eine Stetson-Statistik, aber trotzdem viel).

Diese Diskussion ist sehr wertvoll. Für einen chinesischen Website-Administrator könnte Flare bedeuten, ob chinesische Benutzer normal Daten mit der Außenwelt austauschen können. Ich habe vor einiger Zeit einen Test durchgeführt. Wenn Sie Orange Cloud nicht verwenden und von China aus auf Server in anderen Ländern zugreifen, sind die Netzwerk-Jitter sehr stark. Das Böse daran ist, dass der Betrieb eines Forums in China strenger Zensur unterliegt. Selbst wenn ich ein nicht-politisches Forum betrieb, habe ich darunter gelitten. Wir müssen davon ausgehen, dass sich der Server der Website außerhalb Chinas befindet. Wenn ich also ein Forum mit Discourse erstelle, muss ich überlegen, ob ich Cloud Flare nutzen kann.

1 „Gefällt mir“