Hallo @Falco,
ich bin ziemlich sicher, dass ich es genau wie in deiner Anleitung eingerichtet habe, aber ich bemerke etwas Seltsames.
In der Container-Konfiguration lade ich die SSL-Vorlagen nicht und habe die Umgebungsvariable DISCOURSE_FORCE_HTTPS auf true gesetzt. Ich bin mir nicht sicher, was das bewirkt, aber ich vermute, dass es SiteSetting.force_https auf true setzt und es dann im Admin-Dashboard ausblendet, um zu verhindern, dass es deaktiviert wird.
Meine CF-Tunnel-Konfiguration sieht so aus:
ingress:
- hostname: dc.example.com
service: http://dc:80 # dc ist mein Discourse-Standalone-App-Containername
Die Sache ist, dass ich http://dc.example.com besuchen kann und es nicht zu https weitergeleitet wird. Ist das das erwartete Verhalten?
Kannst du das reproduzieren? Ich frage mich, ob das ein Fehler ist.
Meine relevanten CF-Einstellungen sind:
- SSL/TLS > Übersicht > SSL/TLS-Verschlüsselungsmodus: voll (nicht voll (strict))
- SSL/TLS > Edge-Zertifikate > Immer HTTPS verwenden: aus
Ich weiß, dass ich CF die Weiterleitung durchführen lassen kann (entweder mit Immer HTTPS verwenden oder einer Bulk-Redirect-Regel), aber ich hätte angenommen, dass Discourse das handhabt und alle internen URIs weiterleitet, wenn force_https aktiviert ist. Gedanken dazu?
Abgesehen vom Weiterleitungsproblem funktioniert das Surfen auf https://dc.example.com unabhängig vom Wert von DISCOURSE_FORCE_HTTPS oder SiteSetting.force_https einwandfrei.
Bearbeitung: Obwohl ich nicht verstehe, was force_https für uns bewirkt (vielleicht tut es einfach nichts, wenn die SSL-Vorlagen nicht enthalten sind?), ist mir gerade eingefallen, dass die Tunnel-Konfiguration wahrscheinlich nicht wie vorgesehen funktionieren würde, wenn Discourse tatsächlich alles über HTTPS weiterleiten würde. Wenn es das täte, könnte argotunnel Discourse nicht über HTTP erreichen (wie service: http://dc:80), also sollte ich vielleicht:
- mich darauf verlassen, dass CF meine Weiterleitungen vornimmt ODER
- Discourse ein Zertifikat verwenden lassen und cloudflared mit HTTPS auf den Discourse-Ursprung zugreifen lassen (
service: https://dc:443)
Vielleicht könnte deine Argotunnel-Anleitung aktualisiert werden, um dies zu berücksichtigen?