Es gibt einen internen Server, auf dem Discourse läuft und der am Port 80 für eingehende Verbindungen geöffnet ist. Wenn ein Besucher eine Seite anfordert, wird diese immer über HTTPS geöffnet (Umleitung), aber alle Links sind in HTTP. Ich habe keinen Zugriff auf diese Infrastruktur, aber abgesehen vom Port 80 habe ich keine andere Möglichkeit.
Ich kann es deaktivieren, aber mir scheint, dass dies das Problem nicht lösen wird, da die Aktivierung von HTTPS auf Port 80 aufgrund von SSL nicht möglich ist.
Meinst du, dass du woanders einen Reverse-Proxy eingerichtet hast, der die SSL-Verschlüsselung für alle deine Sites übernimmt, einschließlich Discourse?
Bedeutet das nicht, dass du möchtest, dass die Links auf den bereitgestellten Seiten HTTPS sein sollen, und dass du HTTPS auf eine andere Weise handhabst?
Entschuldigung, ich verstehe deine Beiträge (vollständig) nicht ganz.
Du hast gesagt,
Ich muss den Server so einrichten, dass er auf Port 80 lauscht, aber Links in HTTPS ausgibt. Wie kann ich dieses Problem lösen?
Wenn ich dich richtig verstehe, möchtest du, dass sämtlicher HTTP-Datenverkehr auf Port 80 auf Port 443 (HTTPS) umgeleitet wird, und du möchtest keinen HTTPS-Datenverkehr auf Port 80 senden, sondern nur Port 80 auf Port 443 umleiten.
Falls ja, ist dies die Standardkonfiguration für fast alle Webserver. Wenn du beispielsweise LetsEncrypt verwendest, um deinen Datenverkehr auf Port 443 mit Apache2 oder nginx einzurichten, wird LetsEncrypt dich fragen, ob du diese Umleitung einrichten möchtest, und sie für dich vornehmen.
Wie @Falco bereits gefragt hat: Was ist deine genaue Konfiguration? Betreibst du einen Webserver wie nginx oder Apache2 vor Discourse als Reverse-Proxy?
Falls ja, wird beim Einrichten von LetsEncrypt auf nginx oder Apache2 die LetsEncrypt-Setup-Software die „Umleitung von HTTP auf HTTPS“ für dich vornehmen (falls du beim Konfigurationsdialog „Ja“ auswählst).
Das ist eine schöne, sauber aussehende neue Discourse-Seite, @anton21m.
Wir verstehen Ihre Situation jetzt vollständig. Danke.
Wenn Sie keinen Zugriff auf nginx oder das System haben, müssen Sie Ihren Systemadministrator bitten, LetsEncrypt zu installieren und SSL für Ihre Website hinzuzufügen.
Das ist wirklich Ihre einzige Option, wenn Sie bei diesem Hosting-Anbieter bleiben und keinen Zugriff auf nginx haben.
Es tut mir leid, das mitteilen zu müssen. Vielleicht sollten Sie einen anderen Hosting-Anbieter in Betracht ziehen?
Diese „gewünschte Lösung“, von der du sprichst, ist genau das, was wir dir bereits geraten haben: Richte deinen Webserver so ein, dass der Datenverkehr auf Port 80 automatisch auf Port 443 umgeleitet wird.
Diese Lösung erfordert, dass du den Webserver änderst – genau wie bereits empfohlen.
Aber ich wiederhole es noch einmal, nur für dich, @anton21m weil wir wollen, dass du Erfolg hast!
Du benötigst Zugriff auf den Webserver und musst ihn so konfigurieren, dass der Datenverkehr auf Port 80 auf Port 443 umgeleitet wird. Außerdem musst du die SSL-Zertifikate auf demselben Webserver einrichten. Falls dein Hosting-Anbieter dies nicht zulässt, musst du zu einem anderen Anbieter wechseln.
Du könntest erwägen, es bei einem der von Discourse empfohlenen Hosting-Anbieter zu hosten, da diese all dies problemlos für dich übernehmen.