Wie setze ich das sichere Flag für den Cookie _forum_session

Hallo,

unsere Website sollte sowohl mit HTTP als auch mit HTTPS funktionieren. Wir müssen das Cookie (_forum_session) absichern. Das Cookie hat derzeit nur das Flag „HttpOnly“ und fehlt das Flag „Secure“. Wie kann dies so eingerichtet werden, dass auch „Secure“ aktiviert ist?

Vielen Dank

Sie sollten Ihre Website so einrichten, dass sie ausschließlich über HTTPS funktioniert.

4 „Gefällt mir“

Gibt es keine Möglichkeit, den Discourse-Code zu ändern?

Hey @mevaha

Seit vielen Jahren ist der Trend im Web, ausschließlich HTTPS zu verwenden.

Das war früher ein Problem, bis Organisationen wie Let’s Encrypt (LE) begannen, SSL-Zertifikate kostenlos anzubieten und einen robusten Mechanismus zur Verwaltung dieser Zertifikate bereitstellten.

Wenn LE (certbot) verwendet wird, um die Zertifikate auf deiner Site zu konfigurieren, richtet es sowohl HTTP als auch HTTPS ein, und der HTTP-Verkehr wird automatisch vollständig auf HTTPS umgeleitet.

Natürlich kannst du einen Weg finden, Discourse nur mit HTTP zu betreiben, aber dies wird nicht unterstützt – außer in der Discourse-Entwicklung. Ohne HTTPS würden alle Benutzeranmeldedaten, einschließlich Passwörter, unverschlüsselt über das Netz übertragen. Dies wird in der Produktion NICHT unterstützt.

Stell es dir so vor: HTTPS ist wie das Anschnallen im Auto. Wer ohne Anschnallen fahren möchte, tut dies auf eigenes Risiko; daher produzieren Autohersteller keine Autos mehr ohne Sicherheitsgurte.

Genauso verhält es sich mit Discourse. Discourse ist dafür ausgelegt, in der Produktion sicher zu laufen. Daher ist die unterstützte Version von Discourse in der Produktion HTTPS.

Hoffentlich hilft dir das weiter.

Entschuldige, dass ich nicht hilfreicher war.

1 „Gefällt mir“

Vielen Dank, @neounix. Unser Problem ist, dass das HTTPS-Zertifikat vom Load Balancer verwaltet wird und nur der Port 80 zwischen Discourse und dem Load Balancer geöffnet ist. Wir haben versucht, HTTP auf HTTPS umzuleiten, aber ohne Erfolg. Könntest du mir bitte die Konfigurationsdatei für Cookies in Discourse zur Verfügung stellen?

Vielen Dank

Hallo @mevaha,

Wenn das der Fall ist, dann haben Sie höchstwahrscheinlich einen Reverse-Proxy vor Ihrem Load Balancer (oder als Teil Ihres Load Balancers).

Lassen Sie mich das erklären.

Der Reverse-Proxy (mit Load Balancer, falls vorhanden) kommuniziert im Backend mit Discourse über HTTP.

Sie haben also recht, dass Discourse nur HTTP verwendet, aber nur mit dem Reverse-Proxy, nicht mit der Außenwelt.

Der Ablauf sieht also so aus:

WEB-BENUTZER  <-----> HTTPS  <-----> REVERSE-PROXY <-----> HTTP <-----> LOAD BALANCER <-----> DISCOURSE (DOCKER)

Daher können Sie Ihren Discourse-Container als Docker-Container auf Port 80 (nur HTTP) bereitstellen, wie Sie es erwähnt haben.

Allerdings benötigen Sie auf der nach außen gerichteten Website einen Reverse-Proxy, der HTTPS-Anfragen im Backend über HTTP weiterleitet.

Ihr Reverse-Proxy (mit Load Balancer) sorgt bei korrekter Konfiguration dafür, dass HTTP-Cookies und Header korrekt hin und her übertragen werden.

Ich hoffe, das hilft.

Wenn Sie weitere Fragen haben, stellen Sie sie gerne.

Bitte beachten Sie: Wenn Sie uns die genauen technischen Details Ihrer Architektur mitteilen, können wir Sie besser unterstützen; wir haben schließlich keine Kristallkugel-App :slight_smile:

2 „Gefällt mir“

Vielen Dank @neounix

1 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.