Page 1 of 1

httpd spezial für ssl vhost only

Posted: 2010-04-19 10:26
by TecServer
grüß euch,

im moment bin ich in einer blöden situation. wir arbeiten mit einem cluster verfahren.

Frontend server ist ein normaler apache der confixx zur verwaltung nimmt, backend wird dann auf einen mongrel cluster gelegt.
Da der Apache die requests entgegen nimmt und auch statischen Inhalt liefert, müssen wir das SSL flag an den mongrel weiterleiten sollte die domain via https aufgerufen worden sein.

So gut so einfach - das würde auch locker klappen mit händisch konfigurierten vhosts.
Da wir aber auf einem confixx system arbeiten ist das doof.

Ich kann zwar die httpd spezial eines Benutzers / einer Domain verändern, jedoch *nicht* einer Domain die via SSL aufgerufen wird.
Habt ihr da eine Idee?

Evntl gibt es einen workaround like:
<IfDefine SSL>
...
</IfDefine>
nur das auf Vhost ebene?

Re: httpd spezial für ssl vhost only

Posted: 2010-04-19 10:36
by Roger Wilco
Wenn du das Flag fuer Mongrel via mod_rewrite anhaengst, kannst du einfach in einer RewriteCond abpruefen, ob der Aufruf via HTTPS erfolgte.

Re: httpd spezial für ssl vhost only

Posted: 2010-04-19 10:51
by TecServer
gute idee, jedoch arbeite ich hier mit mod_proxy auf vhost ebene um den mongrel cluster anzusprechen.
wie hättest du das mit der .htaccess gelöst? hast du ein beispiel dafür?

Re: httpd spezial für ssl vhost only

Posted: 2010-04-19 13:00
by Roger Wilco
mod_rewrite unterstuetzt mit dem P-Flag auch proxying, wenn mod_proxy geladen ist.

Re: httpd spezial für ssl vhost only

Posted: 2010-04-19 17:22
by EdRoxter
Alternativ fügst du in der /etc/apache2/(apache2|httpd).conf unter dem Include für die confixx_mhost.conf (in der wiederum die Confixx-VHost-Konfigurationen inkludiert werden) die Direktive des VHosts, den du ändern willst, nochmal ein und überschreibst dann alle Einstellungen, die du gerne anders hättest.
Das ist aber quick&ziemlich dirty.

Re: httpd spezial für ssl vhost only

Posted: 2010-04-19 17:43
by TecServer
EdRoxter wrote:Alternativ fügst du in der /etc/apache2/(apache2|httpd).conf unter dem Include für die confixx_mhost.conf (in der wiederum die Confixx-VHost-Konfigurationen inkludiert werden) die Direktive des VHosts, den du ändern willst, nochmal ein und überschreibst dann alle Einstellungen, die du gerne anders hättest.
Das ist aber quick&ziemlich dirty.
kann man vhosts denn überschreiben?

Re: httpd spezial für ssl vhost only

Posted: 2010-04-19 17:57
by EdRoxter
Arg, das war genau die richtige Frage. Nein, weil ja der Name erst mit der ServerName-Direktive festgelegt würde und Apache das AFAIK als Dublette, nicht als Ergänzung bzw. Override werten würde. Also funktioniert's wahrscheinlich nur bei <Directory>.

Ich hab's grad mal testweise ausprobiert, gibt zwar keinen Fehler, wird aber allem Anschein nach ignoriert.

Re: httpd spezial für ssl vhost only

Posted: 2010-04-19 21:51
by daemotron
Roger Wilco wrote:Wenn du das Flag fuer Mongrel via mod_rewrite anhaengst, kannst du einfach in einer RewriteCond abpruefen, ob der Aufruf via HTTPS erfolgte.
Meine Vermutung: Der OP meint mit "Flag" den HTTP Request Header "X-FORWARDED-PROTO" und als Wert für diesen Header "https" (das verstehen Mongrel und Thin jedenfalls). Und mit mod_rewrite Request Header ändern... hmm, wüsste nicht, dass das geht :wink:

Grundsätzlich müsste man doch so etwas in das globale SSL-vhost-Template einbauen können:

Code: Select all

<IfModule headers_module>
    RequestHeader set X_FORWARDED_PROTO "https"
</IfModule>
Das schadet ja auch in keinem anderen vhost, der über SSL läuft...

Re: httpd spezial für ssl vhost only

Posted: 2010-04-20 11:00
by TecServer
jfreund wrote:Grundsätzlich müsste man doch so etwas in das globale SSL-vhost-Template einbauen können:

Code: Select all

<IfModule headers_module>
    RequestHeader set X_FORWARDED_PROTO "https"
</IfModule>
Das schadet ja auch in keinem anderen vhost, der über SSL läuft...
schaden würds keinem, die frage ist: gibts ein globales template das eingebunden wird?! confixx nutzt keinerlei globale templates in den vhosts

Re: httpd spezial für ssl vhost only

Posted: 2010-04-20 12:50
by Joe User
Du hast doch ohnehin nur einen SSL-VHost pro IP-Adresse, insofern ist es doch kein grosser Aufwand das in die jeweilige httpd-Spezial zu packen...

Re: httpd spezial für ssl vhost only

Posted: 2010-04-20 13:24
by TecServer
Joe User wrote:Du hast doch ohnehin nur einen SSL-VHost pro IP-Adresse, insofern ist es doch kein grosser Aufwand das in die jeweilige httpd-Spezial zu packen...
es ist kein aufwand, aber wenn ich das in den domain vhost per httpd-Spezial packe, stehts im HTTP und HTTPs VHost.
Das entsprechende flag darf aber nut im HTTPs VHost sein

Re: httpd spezial für ssl vhost only

Posted: 2010-04-20 16:09
by dotme
Dann verwende doch

Code: Select all

RequestHeader set X_FORWARDED_PROTO "https" env=HTTPS
Naja, ich kenn mich mit Confixx nicht aus und wenn dieses "SharedSSL" selber schon ein Forward-Proxy ist hast Du da vermutlich keinen SSL-Kontext mehr.

Re: httpd spezial für ssl vhost only

Posted: 2010-04-20 16:29
by TecServer
was hat das env=HTTPS am Ende für eine Wirkung?

Re: httpd spezial für ssl vhost only

Posted: 2010-04-20 17:44
by Roger Wilco
Dadurch wird die vorige Direktive nur evaluiert, wenn die Umgebungsvariable HTTPS gesetzt ist.

Allerdings weiß ich nicht, ob das so funktioniert, wie von dotme vorgesehen. Ich dachte ${HTTPS} wird nur in einer CGI-Umgebung gesetzt (für das jeweilige Skript) - im Zweifel hilft nur ausprobieren.

Re: httpd spezial für ssl vhost only

Posted: 2010-04-20 17:55
by TecServer
ich habs ausprobiert und das von dotme funktioniert. Danke ;)