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?
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.
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?
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