[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Apache2 mit mehrern vhost auf https umleitem



Joachim Hartmann:
> 
> zwischenzeitig ist es mir gelungen mit hilfe eines Proxy mehrere <VirtualHost
> *> auf einem Rechner über https anzusprechen.

SNI (Server Name Indication) sagt Dir was? Der Browsersupport ist
inzwischen ganz ok. Du sperrst nur IE auf Windows XP aus.

> - Der Proxy leitet die aus dem WAN eingehenden https-Anfragen intern per http
> weiter.

Wozu der Proxy? Wenn der mehrere IP-Adressen hat, kannst Du die doch
auch direkt dem Apache geben.

> - Aus dem WAN eingehenden http-Anfragen laufen nun aber auf Fehler 400
> - Wie kann ich dieses abfangen? Müsste eigentlich mit einer weiteren
> rewrite-Regel in 000-default klappen!

Würde mich überraschen.  Requst und Response und die passenden Logs
(Proxy, Apache) zeigen. Aber siehe unten.

> Aber wie?
> Nun meine derzeitigen Konfigurationsdateien:
> ### ports.conf ############################
> Listen 80
> <IfModule mod_ssl.c>
>     Listen 443
> </IfModule>
> <IfModule mod_gnutls.c>
>     Listen 443
> </IfModule>

Du willst doch gar kein SSL auf dem Apache machen. 443 brauchst Du
nicht. In Debians Standardconfig steht hier auch das NameVirtualHost
drin, das halte ich für sinnvoll.

> ### sslproxy.map ##########################
> https://haz.mydomain.tld/           http://haz.mydomain.tld/
> https://np.mydomain.tld/            http://np.mydomain.tld/
> https://sysinfo.mydomain.tld/       http://sysinfo.mydomain.tld/
> https://karin.mydomain.tld/         http://karin.mydomain.tld/
> ### 000-default ###########################
> NameVirtualHost *
> <VirtualHost *>
>     ServerName www.mydomain.tld
>     DocumentRoot /var/www/
>     ServerAdmin admin@mydomain.tld
>     LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
>     
>     <IfModule mod_ssl.c>
>       SSLEngine on
>       SSLCertificateKeyFile /etc/apache2/ssl/privatekey.key
>       SSLCertificateFile    /etc/apache2/ssl/servercert.cert
>     </IfModule>
>     
>     <IfModule mod_rewrite.c>
>        RewriteEngine On
>        RewriteMap   domains      txt:/etc/apache2/sslproxy.map
>        RewriteCond  %{HTTP_HOST} ^([^\.]+)\. [NC]
>        RewriteRule  ^(.+)$       http://${domains:%1}$1 [P,L]
>     </IfModule>
> </VirtualHost>

Ich verstehe nicht, was das hier mit der RewriteMap soll. Und davon ab:
HTTP_HOST enthält keine komplette URL, sondern nur den Hostnamen. Das
matcht nie. Wenn Du unterschiedliche Sachen auf verschiedenen Ports
machen willst, schreib entsprechende VirtualHost-Abschnitte mit
Beschränkung auf einen Port (<VirtualHost *:80>).

Mein Rat: schmeiß das alles weg und lege unter einfach unter
/etc/apache2/sites-available/ die Configs für jeden VirtualHost an.

Was Du nur beachten musst: ob der Proxy den ursprünglichen Host-Header
des Requests umschreibt (auf www.mydomain.tld in Deinem Beispiel). Das
solltest Du möglichst unterbinden, weil Du damit dem Apache die
Möglichkeit nimmst, den passenden VirtualHost auszuwählen. War es das,
was Du mit der RewriteMap umschiffen wolltest?

J.
-- 
It is not in my power to change anything.
[Agree]   [Disagree]
                 <http://www.slowlydownward.com/NODATA/data_enter2.html>

Attachment: signature.asc
Description: Digital signature


Reply to: