• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

vhosts & SSL

mikrosaft

Member
Hallo Leute,

ich habe hier ein merkwürdiges Problem mit meinem apache.
Ich habe 3 Named-vhosts konfiguriert, einen davon mit SSL. Funktioniert auch Grundsätzlich.

Die Konfiguration ist wie folgt:

Code:
#/etc/apache2/vhosts.d/test1.conf
<VirtualHost *:80>
    ServerAdmin webmaster@test1.xxxxxx.com
    ServerName test1.xxxxxx.com

    DocumentRoot /srv/www/vhosts/test1.xxxxxx.com

    ErrorLog /var/log/apache2/test1.xxxxxx.com-error_log
    CustomLog /var/log/apache2/test1.xxxxxx.com-access_log combined

    HostnameLookups On
    UseCanonicalName On
    ServerSignature On

    ScriptAlias /cgi-bin/ "/srv/www/vhosts/test1.xxxxxx.com/cgi-bin/"

    <Directory "/srv/www/vhosts/test1.xxxxxx.com/cgi-bin">
	AllowOverride None
	Options +ExecCGI -Includes
	Order allow,deny
	Allow from all
    </Directory>

    <IfModule mod_userdir.c>
	UserDir public_html
	Include /etc/apache2/mod_userdir.conf
    </IfModule>

    <Directory "/srv/www/vhosts/test1.xxxxxx.com">
	Options Indexes FollowSymLinks
	AllowOverride None
	Order allow,deny
	Allow from all
    </Directory>
</VirtualHost>
Code:
#/etc/apache2/vhosts.d/test2.conf
<VirtualHost *:80>
    ServerAdmin webmaster@test2.xxxxxx.com
    ServerName test2.xxxxxx.com

    DocumentRoot /srv/www/vhosts/test2.xxxxxx.com

    ErrorLog /var/log/apache2/test2.xxxxxx.com-error_log
    CustomLog /var/log/apache2/test2.xxxxxx.com-access_log combined

    HostnameLookups On
    UseCanonicalName On
    ServerSignature On

    ScriptAlias /cgi-bin/ "/srv/www/vhosts/test2.xxxxxx.com/cgi-bin/"

    <Directory "/srv/www/vhosts/test2.xxxxxx.com/cgi-bin">
	AllowOverride None
	Options +ExecCGI -Includes
	Order allow,deny
	Allow from all
    </Directory>

    <IfModule mod_userdir.c>
	UserDir public_html
	Include /etc/apache2/mod_userdir.conf
    </IfModule>

    <Directory "/srv/www/vhosts/test2.xxxxxx.com">
	Options Indexes FollowSymLinks
	AllowOverride None
	Order allow,deny
	Allow from all
    </Directory>
</VirtualHost>
Code:
<VirtualHost *:443>
    ServerAdmin webmaster@sslhost.xxxxxx.com
    ServerName sslhost.xxxxxx.com:443

    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile /etc/apache2/ssl.crt/server.crt
    SSLCertificateKeyFile /etc/apache2/ssl.key/server.key

    DocumentRoot /srv/www/vhosts/sslhost.xxxxxx.com

    ErrorLog /var/log/apache2/sslhost.xxxxxx.com-error_log
    CustomLog /var/log/apache2/sslhost.xxxxxx.com-access_log combined

    HostnameLookups Off
    UseCanonicalName Off
    ServerSignature On

    ScriptAlias /cgi-bin/ "/srv/www/vhosts/sslhost.xxxxxx.com/cgi-bin/"

    <Directory "/srv/www/vhosts/sslhost.xxxxxx.com/cgi-bin">
	AllowOverride None
	Options +ExecCGI -Includes
	Order allow,deny
	Allow from all
    </Directory>

    <IfModule mod_userdir.c>
	UserDir public_html
	Include /etc/apache2/mod_userdir.conf
    </IfModule>

    <Directory "/srv/www/vhosts/sslhost.xxxxxx.com">
	Options Indexes FollowSymLinks
	AllowOverride None
	Order allow,deny
	Allow from all

	AuthType basic
	AuthName "Restricted"
	AuthUserFile /etc/apache2/htpasswd
	
    </Directory>
</VirtualHost>

Die entsprechenden Verzeichnisse, Dateien und Zertifikate sind angelegt und da wo sie sein sollen, DNS ist eingerichtet und erst mal funktioniert auch alles. Auch /etc/sysconfig/apache2 sowie /etc/apache2/listen.conf sind konfiguriert.
Wenn ich nun allerdings im Browser https://test1.xxxxxx.com eingebe, dann lande ich auf der Seite https://sslhost.xxxxxx.com. Erwarten würde ich eigentlich eine Fehlermeldung.
Wo hakts?

Hat jemand eine Idee?

Gruss
ms
 

nbkr

Guru
Du kannst nur einen SSL-VHost pro IP Adresse einrichten. Das liegt daran wie SSL und VHosts aufbaut sind. Der Apache (und jeder andere Webserver) kann den VHost erst erkennen wenn er die Anfrage des Browsers gelesen hat. Ist dies SSL Verschlüsselt muss er die Anfrage erst entschlüsseln. Dafür muss er wissen wo sich die Zertifikate und Schlüssel befinden. Das ist in VirtualHosts-Umgebungen definiert. SSL zwingt den Apache also dazu sich für einen VHost zu entscheiden bevor er die notwendigen Infos hat. Ergo landest Du immer beim ersten VHost der SSL konfiguriert hat.
 
OP
mikrosaft

mikrosaft

Member
Na ja, es ist ja nur ein SSL-Host konfiguriert... Also, wenn ich das jetzt richtig verstanden habe, ist das "per Design" so, dass alle https-Anfragen - egal welcher Name in der URL steht - an den konfigurierten SSL-Host geleitet werden, auch wenn dieser anders heißt...

Ok, dann ist es kein Bug sondern ein Feature bzw. ein Fehler im OSI-8 Layer... ;)

Danke und Gruß
ms
 

nbkr

Guru
Ja, ist kein Bug in der Config. Das dich Apache zu einzig vorhanden SSL Vhost weiterleitet ist normal. Der Apache weiß ja erst nach dem Weiterleiten das Du da gar nicht hin wolltest.
 
Oben