HTTP-Bereitstellung mit Apache auf Port 443 hinter dem SSL-Terminator

HTTP-Bereitstellung mit Apache auf Port 443 hinter dem SSL-Terminator

Unsere Netzwerkbetriebsleute haben SSL-Terminierung eingerichtet und leiten die Anfrage dann per Reverse-Proxy an uns weiter. Ihre Anforderung ist, dass wir den Inhalt auf Port 443 bereitstellen müssen, wenn sie die Eingabe auf Port 443 gesehen haben. Daher stellen wir unverschlüsselten Inhalt auf Port 443 bereit. Das ist eine Invariante, die wir umgehen müssen.

In den meisten Fällen ist das kein Problem. Wir Listen 443richten kein SSL ein und alles funktioniert, außer ... Weiterleitungen.

Definieren wir beispielsweise Folgendes:

Alias /foo /path/to/foo
<Directory /path/to/foo>
    ...
</Directory>

Apache ist intelligent genug, um eine Anfrage an umzuleiten /foo. /foo/Wenn wir http auf Port 80 verwenden, funktioniert das einwandfrei. Wenn der Client jedoch https auf Port 443 verwendet, erhalten wir eine Umleitung mit einem , Locationdie wie folgt aussieht:

Location: http://my.example.com:443/foo/

Das Problem besteht darin, dass wir nicht von einem sicheren zu einem unsicheren Protokoll umleiten möchten. Das ist allerdings nicht wichtig, da wir auf Port 443 keine unsicheren Inhalte bereitstellen.

Ich vermute, dass es eine bessere Möglichkeit gibt, Apache mitzuteilen, dass diese Anfrage ursprünglich eine sichere Anfrage war, aber ich kenne mich mit der Apache-Konfiguration nicht sehr gut aus. Ich hoffe, dass ich nicht für jeden DirectoryEintrag manuell eine Weiterleitung erstellen muss, insbesondere da einige Inhalte sowohl in sicherer als auch in unsicherer Form verfügbar sind.

Hat jemand Hinweise auf Dokumente, die helfen können (leider fällt mir bei Google nicht der richtige Zauberspruch ein)? Hinweise, wie man das am besten handhabt, sind ebenfalls willkommen. :)

Antwort1

Dieses Szenario wird beschrieben in der Dokumentation fürServername:

Manchmal läuft der Server hinter einem Gerät, das SSL verarbeitet, z. B. einem Reverse-Proxy, einem Load Balancer oder einem SSL-Offload-Gerät. Wenn dies der Fall ist, geben Sie in der ServerName-Direktive das https://-Schema und die Portnummer an, mit der die Clients eine Verbindung herstellen, um sicherzustellen, dass der Server die richtigen selbstreferenziellen URLs generiert.

Wenn Sie dies tun und gleichzeitig Port 80 in Betrieb halten möchten, müssen Sie für mindestens einen davon einen virtuellen Host verwenden, sodass Sie einen separaten Servernamen hinzufügen können.

verwandte Informationen