Hallo Penar,
vielleicht müssen wir zuerst die Details meines Setups klären. Es unterscheidet sich etwas von der Standardbereitstellung.
- zentraler Load Balancer (https://www.haproxy.org/) fungiert als SSL-Beschleuniger für verschiedene Webdienste (nicht nur für Discourse). Der Zugriff aus dem Internet auf einen dieser Dienste ist nur über HTTPS gestattet. Der Wechsel von HTTP zu HTTPS erfolgt auf dem Load Balancer selbst, siehe Redirect HTTP to HTTPS in a Few Easy Steps with HAProxy als Referenz)
- HAProxy leitet Frontend-Anfragen an das Backend in einem privaten Netzwerk (10.x.x.x) ohne Verschlüsselung weiter. Dieser Datenverkehr endet bei einem lokalen Nginx auf dem Docker-Host.
- Nginx leitet Anfragen mit
proxy_pass ``http://unix``:/mnt/data/discourse/shared/web-only/nginx.http.sockan den HTTP-Socket desweb_only-Containers weiter.
(Ich verwende ein Zwei-Container-Setup mitweb_only.ymlunddata.yml). Siehetemplates/web.socketed.template.ymlals Referenz.
Ich benötige SiteSetting.force_https nicht, da die gesamte HTTPS-Verschlüsselung außerhalb des Discourse-Containers erfolgt. Ich verwende bereits OAuth basierend auf dem Plugin Discourse OpenID Connect (OIDC) und mit meinem eigenen IDP. Das Discourse OIDC-Plugin enthält eine Einstellung für das „well-known“ OpenID Connect discovery document. In meinem Fall: https://login.netzwissen.de/realms/netzwissen/.well-known/openid-configuration
Wenn Discourse ID etwas Ähnliches für die Verbindung zwischen der Discourse-Container-Instanz und dem Discourse ID IDP implementieren würde, gäbe es keine Probleme. Da „Discourse ID“ einen festen IDP verwendet, könnte eine solche „Well-Known-URL“ sogar fest kodiert werden, einschließlich des HTTPS-Präfixes.