Hallo,
ich habe einen Webserver, den ich gern hinter SSL "verstecken" will. Dazu versuche ich mich an apache2 als reverse proxy. Dabei habe ich leider ein Problem mit Links innerhalb der gelieferten Webseite: die gelieferten Links referenzieren auf bsm.external.tld und damit nicht mehr HTTPS, das "set ClientProtocol" scheint überhaupt nicht zu wirken, schalte ich ProxyPreserverHost ab, ändert sich der FQDN zur lokalen IP - das hat also nichts mit dem Protokoll zu tun. Muss ich jetzt noch etwas mit mod_rewrite machen, was?
Mein augenblicklicher - also oben beschriebener Stand:
<VirtualHost _default_:20443> DocumentRoot /var/www/reverse ServerName bsm.external.tld:20443 ServerAdmin webmaster@localhost ProxyRequests Off ProxyPreserveHost On SSLEngine On ProxyPass / http://192.168.100.5/ ProxyPassReverse / http://192.168.100.5/ RequestHeader set ClientProtocol https ErrorLog ${APACHE_LOG_DIR}/bsm-error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/bsm-access.log combined SSLCertificateFile /etc/apache2/ssl.wildcard_external_tld/crt SSLCertificateKeyFile /etc/apache2/ssl.wildcard_external_tld/key SSLCertificateChainFile /etc/apache2/ssl.wildcard_external_tldde/pem SSLCACertificateFile /etc/apache2/ssl.wildcard_external_tld/ca.pem </VirtualHost>
Mit freundlichen Grüßen / Kind regards Ronny Seffner
Hi,
On Wednesday 08 August 2012 14:22:21 Ronny Seffner wrote:
ich habe einen Webserver, den ich gern hinter SSL "verstecken" will. Dazu versuche ich mich an apache2 als reverse proxy. Dabei habe ich leider ein Problem mit Links innerhalb der gelieferten Webseite: die gelieferten Links referenzieren auf bsm.external.tld und damit nicht mehr HTTPS, das "set ClientProtocol" scheint überhaupt nicht zu wirken, schalte ich ProxyPreserverHost ab, ändert sich der FQDN zur lokalen IP - das hat also nichts mit dem Protokoll zu tun. Muss ich jetzt noch etwas mit mod_rewrite machen, was?
Mein augenblicklicher - also oben beschriebener Stand:
<VirtualHost _default_:20443>
Warum machst Du HTTPS auf Port 20443? Das ist relativ unüblich.
DocumentRoot /var/www/reverse ServerName bsm.external.tld:20443 ServerAdmin webmaster@localhost
Ganz böser Webmaster. Bitte eine richtige Mailadresse nehmen.
ProxyRequests Off ProxyPreserveHost On SSLEngine On
Ok
ProxyPass / http://192.168.100.5/
Nimmt Requests entgegen und schiebt sie weiter auf den Zielhost.
ProxyPassReverse / http://192.168.100.5/
Schreibt die Header um, so dass der Zielhost sie auch wiedererkennt.
RequestHeader set ClientProtocol https
Brauchst Du nicht, ist Apache-intern.
ErrorLog ${APACHE_LOG_DIR}/bsm-error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/bsm-access.log combined SSLCertificateFile /etc/apache2/ssl.wildcard_external_tld/crt SSLCertificateKeyFile /etc/apache2/ssl.wildcard_external_tld/key SSLCertificateChainFile
/etc/apache2/ssl.wildcard_external_tldde/pem SSLCACertificateFile /etc/apache2/ssl.wildcard_external_tld/ca.pem </VirtualHost>
Ok.
Du hast keine einzige Zeile, die Inhalte umschreibt. Das kannst Du z.B. mit lerewrite machen:
LERewriteRule http://192.168.100.5 https://bsm.external.tld:20443
Konrad
Hallo Konrad,
Warum machst Du HTTPS auf Port 20443? Das ist relativ unüblich.
Weil 443, 8443 und 10443 schon belegt sind - ist doch für meine Frage egal.
ServerAdmin webmaster@localhost
Ganz böser Webmaster. Bitte eine richtige Mailadresse nehmen.
Der Fokus lag hier aus HTTPS->HTTP Proxy, nicht auf korrekter Konfiguration weiterer Parameter. Bevor das System "produktiv" geht, wird sowas natürlich überarbeitet.
LERewriteRule http://192.168.100.5 https://bsm.external.tld:20443
Schade, ich habe debian/squeeze, da gibt es das Modul "line-edit" nicht. Kann sowas auch die "normale" rewrite Engine?
Mit freundlichen Grüßen / Kind regards Ronny Seffner
Hallo Ronny,
Am 10.08.2012 10:25, schrieb Ronny Seffner:
Hallo Konrad,
Warum machst Du HTTPS auf Port 20443? Das ist relativ unüblich.
Weil 443, 8443 und 10443 schon belegt sind - ist doch für meine Frage egal.
ServerAdmin webmaster@localhost
Ganz böser Webmaster. Bitte eine richtige Mailadresse nehmen.
Der Fokus lag hier aus HTTPS->HTTP Proxy, nicht auf korrekter Konfiguration weiterer Parameter. Bevor das System "produktiv" geht, wird sowas natürlich überarbeitet.
LERewriteRule http://192.168.100.5 https://bsm.external.tld:20443
Schade, ich habe debian/squeeze, da gibt es das Modul "line-edit" nicht. Kann sowas auch die "normale" rewrite Engine?
Du hast uns nicht verraten, was auf 192.168.100.5 läuft. Vielleicht kannst Du der Maschine verklickern, dass sie hinter einem reverse Proxy läuft (z.B. gibt es für Tomcat die Parameter proxyHost und proxyPort, es würde mich wundern, wenn es nicht auch sowas für das Protokoll gäbe).
Tobias
Hallo Tobias,
Du hast uns nicht verraten, was auf 192.168.100.5 läuft. Vielleicht
Eine Blackbox mit irgendwas unter Java. Durch mich nicht administrierbar.
Mit freundlichen Grüßen / Kind regards Ronny Seffner
On Friday 10 August 2012 10:25:27 Ronny Seffner wrote:
Warum machst Du HTTPS auf Port 20443? Das ist relativ unüblich.
Weil 443, 8443 und 10443 schon belegt sind - ist doch für meine Frage egal.
Es macht die Diagnose schwerer.
ServerAdmin webmaster@localhost
Ganz böser Webmaster. Bitte eine richtige Mailadresse nehmen.
Der Fokus lag hier aus HTTPS->HTTP Proxy, nicht auf korrekter Konfiguration weiterer Parameter. Bevor das System "produktiv" geht, wird sowas natürlich überarbeitet.
Ist mir egal worauf der Fokus war. Fehler werden angemeckert... ;-P
LERewriteRule http://192.168.100.5 https://bsm.external.tld:20443
Schade, ich habe debian/squeeze, da gibt es das Modul "line-edit" nicht. Kann sowas auch die "normale" rewrite Engine?
Ich habe mal etwas gegoogelt: nimm mod_substitute - das sollte auch schon bei Dir installiert sein.
http://httpd.apache.org/docs/2.2/mod/mod_substitute.html
Abgesehen davon funktioniert das mod-line-edit von Lenny auch unter Squeeze.
Konrad
lug-dd@mailman.schlittermann.de