HTTPS-Links auf Port 80 generieren

Ich muss den Server so implementieren, dass er auf Port 80 lauscht, aber Links über HTTPS bereitstellt. Wie kann ich dieses Problem lösen?

Meine aktuelle Konfiguration funktioniert wie folgt, und alle Links sind in HTTP:
expose:
# - “443:443” # https
- “80:80” # https

Ich habe versucht, 80 in 443 umzubenennen, aber das ist fehlgeschlagen.

Ich glaube nicht, dass das möglich ist.

Let’s Encrypt ist recht streng, und ich denke daher, dass sie aus Sicherheitsgründen keine SSL-Zertifikate für andere Ports als 443 ausstellen werden.

Vielleicht die Site-Einstellung force https aktivieren?

Könntest du bitte erklären, warum du das tun musst?

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 fürchte, in meinem Fall wird das nicht funktionieren, da ich tatsächlich nicht mit HTTPS arbeite.

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.

Discourse unterstützt keinen Betrieb auf nicht-standardisierten Ports.

Das schließt auch die Ausführung von HTTPS auf Port 80 ein.

Meinst du, dass du woanders einen Reverse-Proxy eingerichtet hast, der die SSL-Verschlüsselung für alle deine Sites übernimmt, einschließlich Discourse?

Hast du es schon ausprobiert?

Was versuchst du also zu erreichen?

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

Ja, sie haben mich richtig verstanden


Ich kann keine weiteren Ports mehr öffnen, und es gibt einen Reverse-Proxy, der die Website HTTPS macht, aber nicht die Links innerhalb von Discourse.

Hmm, mein Discourse-Ausgabe-Stream ist immer 80. Ich kann nicht auf andere Ports lauschen, und es gibt nichts zu LetsEncrypt dazu.

Hallo @anton21m,

Ja, jetzt verstehen wir besser, dass Sie einen Reverse-Proxy vor Ihrem Container haben.

Welchen Reverse-Proxy verwenden Sie, nginx? Apache2?

server: nginx/1.14.1
Aber ich habe keinen Zugriff darauf
https://forum.qpay.uz/

Sie können sehen, dass alle Links http sind

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?

Offensichtlich ist das also unmöglich !!!
Ich würde gerne eine Lösung wie diese finden

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.

Also, @anton21m, wir drehen uns langsam im Kreis…

Aber ich wiederhole es noch einmal, nur für dich, @anton21m :slight_smile: :slight_smile: 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.

Hoffentlich hilft dir das weiter.

Empfohlen:

Das sollten Sie erreichen können, indem Sie die Discourse-Site-Einstellung force_https aktivieren.