Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
linux:apache2-https-webanwendungen-hinter-rp [2019/05/03 15:46] – created michael | linux:apache2-https-webanwendungen-hinter-rp [2019/05/03 15:53] (current) – [Apache: SSL-Webanwendungen hinter Reverse Proxy] michael | ||
---|---|---|---|
Line 2: | Line 2: | ||
Möchte man eine Webanwendung (Beispielsweise Wordpress, Durpal, Magento) hinter einen Apache als Reverse Proxy betreiben, so wird man spätestens bei der Verwendung von SSL vor ein Problem gestellt: | Möchte man eine Webanwendung (Beispielsweise Wordpress, Durpal, Magento) hinter einen Apache als Reverse Proxy betreiben, so wird man spätestens bei der Verwendung von SSL vor ein Problem gestellt: | ||
- | Apache dient als SSL Backend, das heißt, dass das die Kommunikation zum Backend-Server unverschlüsselt erfolgt. | + | Apache dient als SSL Backend, das heisst, dass das die Kommunikation zum Backend-Server unverschlüsselt erfolgt. |
Betreibt man nun eine Anwendung, die SSL erzwingt, wird man üblicherweise in einem Endlos-Loop landen. | Betreibt man nun eine Anwendung, die SSL erzwingt, wird man üblicherweise in einem Endlos-Loop landen. | ||
- | Die Ursache ist folgende: | + | <WRAP center round important 100%> |
- | Während der Client über SSL (HTTPS:// | + | '' |
+ | Während der Client über SSL (HTTPS:// | ||
+ | </ | ||
- | ===== VHost Konfigurieren ===== | ||
- | Mit eine einzelnen Konfigurationszeile im SSL-Vhost auf dem Proxyserver kann man dieses Problem umgehen: | + | ===== Reverse Proxy Konfiguriguration ===== |
- | In die SSL VHost konfiguration | + | Mit eine einzelnen Konfigurationszeile im SSL-RP auf dem Proxyserver kann man dieses Problem umgehen: |
+ | |||
+ | In die SSL Reverse Proxy Konfiguration | ||
< | < | ||
Line 18: | Line 21: | ||
Das sieht dann Beispielsweise so aus: | Das sieht dann Beispielsweise so aus: | ||
- | <code> | + | <sxh bash> |
< | < | ||
Line 36: | Line 39: | ||
..... | ..... | ||
</ | </ | ||
- | + | </sxh> | |
- | </code> | + | |
Damit enthält der HTTP-Header die Information, | Damit enthält der HTTP-Header die Information, | ||
- | ===== 1. Möglichkeit: | + | ===== Backend System Konfiguration ===== |
+ | |||
+ | |||
+ | <WRAP center box 100%> | ||
+ | ==== 1. Möglichkeit: | ||
Manche PHP-Webanwendungen überprüfen nur den eigentlichen Protocol-Header mit $_SERVER[' | Manche PHP-Webanwendungen überprüfen nur den eigentlichen Protocol-Header mit $_SERVER[' | ||
Line 53: | Line 59: | ||
Der Code prüft dann den vom Proxy veränderten/ | Der Code prüft dann den vom Proxy veränderten/ | ||
Dieses Snippet kann man zum Beispiel in die Datei '' | Dieses Snippet kann man zum Beispiel in die Datei '' | ||
+ | </ | ||
- | ===== 2. Möglichkeit: | + | ---- |
+ | |||
+ | <WRAP center box 100%> | ||
+ | ==== 2. Möglichkeit: | ||
'' | '' | ||
Line 77: | Line 87: | ||
Header set X-Frame-Options: | Header set X-Frame-Options: | ||
</ | </ | ||
+ | </ | ||
+ | ---- | ||
- | + | <WRAP center box 100%> | |
- | ===== 3. Möglichkeit: | + | ==== 3. Möglichkeit: |
Wenn man nicht im PHP-Code seiner Anwendung herumpfuschen will, dann kann man auch über die .htaccess Datei auf dem Backend-Server HTTPS vortäuschen. | Wenn man nicht im PHP-Code seiner Anwendung herumpfuschen will, dann kann man auch über die .htaccess Datei auf dem Backend-Server HTTPS vortäuschen. | ||
Line 89: | Line 101: | ||
</ | </ | ||
- | Im Zusammenspiel mit der VHost Direktive auf dem Proxy sollte es nun keine Problem mehr geben | + | Im Zusammenspiel mit der Direktive auf dem Proxy sollte es nun keine Problem mehr geben |
+ | </ |