Page 1 of 1

http und https auf einem vhost

Posted: 2005-08-31 17:42
by godmode
hallo,

ich betreibe seit etwa zwei jahren einen server welchen ich mit confixx verwaltet habe. nach diversen problemen möchte ich davon aber abschied nehmen und alles selber per editor konfigurieren. eigendlich ist auch alles sehr logisch, aber ein problem habe ich jetzt doch. zuächst einmal stelle ich den soll-zustand da:

auf dem server mit der ip 111.222.333.444. soll ua. die domain meinedomain.com gehostet werden (http & https). wenn man den server aber direkt per ip [http(s)://111.222.333.444] anspricht, soll nix passieren (forbidden). lediglich bei https://111.222.333.444/phpmyadmin soll der symlink verfolgt werden. so, nun soll es die subdomain secure.meinedomain.com geben, welche aber NUR über https angesprochen werden darf (https://secure.meinedomain.com). desweiteren sollen mehrere subdomains normal angesprochen werden dürfen (http://www.sub.meinedomain.com). die hauptdomain soll einen eigenen docroot bekommen ebenso wie jede einzelne subdomain auch. das wars eigendlich schon :) bei der aktuellen konfiguration (anhang unten) kommen jedoch einige fehlermeldungen:

https://secure.meinedomain.com
Fehler: https://secure.meinedomain.com hat eine falsche oder
unerwartete Nachricht gesendet. Fehler-Code: -12263

https://111.222.333.444
Fehler: Die Verbindung mit 111.222.333.444 wurde unerwartet abgebrochen. Ein Teil der Daten wurde eventuell übertragen.

http://111.222.333.444
Fehler: keiner :) einfach forbidden, aber so soll es ja auch sein

alles andere funktioniert (domain und subs via http aufrufen)

so, hier kommt nun die config:

Code: Select all

NameVirtualHost 111.222.333.444:80
NameVirtualHost 111.222.333.444:443

<VirtualHost 111.222.333.444:80>
   DocumentRoot /var/www
   <Directory /var/www/>
	   AllowOverride None
	   Options None
           Options +FollowSymLinks
    </Directory>
</VirtualHost>

<VirtualHost 111.222.333.444:443>
   DocumentRoot /var/www/secure
   <Directory /var/www/secure/>
	   AllowOverride None
	   Options None
	   Options +FollowSymLinks
    </Directory>
</VirtualHost>


<VirtualHost 111.222.333.444:80>

	ServerName  www.meinedomain.com:80
	ServerAlias meinedomain.com
	DocumentRoot /var/www/meinedomain_com/htdocs
	
</VirtualHost>

<VirtualHost 111.222.333.444:80>

    ServerName www.sub.meinedomain.com:80
    ServerAlias sub.meinedomain.com
    DocumentRoot /var/www/meinedomain_com/sub_sub/htdocs
    
</VirtualHost>

<VirtualHost 111.222.333.444:443>

    ServerName secure.meinedomain.com:443
    
    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/apache.pem

    DocumentRoot /var/www/meinedomain_com/htdocs_secure
    
    php_admin_value include_path "/var/www/meinedomain_com/libs_secure"
    php_admin_flag safe_mode on
    
</VirtualHost>

so, ich hoffe, ich habe meinen fehler verständlich rübergebracht und hoffe auch, dass mir geholfen werden kann :)

vielen dank schonmal,
godmode (günther ;))

Re: http und https auf einem vhost

Posted: 2005-08-31 17:48
by Joe User
Es ist nur ein HTTPS-VHost pro IP zulässig.

Re: http und https auf einem vhost

Posted: 2005-08-31 18:00
by godmode
ok, das ist schonmal gut zu wissen.

ich habe nun folgenden teil aus der config entfehrnt:

Code: Select all

<VirtualHost 111.222.333.444:443>
   DocumentRoot /var/www/secure
   <Directory /var/www/secure/>
      AllowOverride None
      Options None
      Options +FollowSymLinks
    </Directory>
</VirtualHost>
warum kann ich denn nun https://111.222.333.444 ansprechen und lande im docroot von secure.meinedomain.com:443 ?!? kann ich es nicht erreichen, dass ich ein forbidden vorn latz bekomme, wenn ich nur die ip über https aufrufe?

danke schonmal

Re: http und https auf einem vhost

Posted: 2005-09-01 05:53
by neffe
Hallo,

SSL Verbindungen sind grundsätzlich "IP basiert". Ein ServerName oder ServerAlias hat generell keine Bedeutung, da er nicht ausgewertet werden kann, da kannst du theoretisch auch Müll rein schreiben.

Der Client / Browser sendet verschlüsselte Daten an den Server, darauf hin muss der Server eine Entscheidung treffen für welchen vHost die Anfrage ist und welches SSL Zertifikat er benutzen kann.

Da die Daten aber verschlüsselt sind, kann er den Host Header zu dem Zeitpunkt nicht auswerten. Der Webserver kann nur auf Basis der Ziel IP Adresse und des Ports eine Entscheidung treffen, und wie auch bei "normalen" Verbindungen nimmt er den ersten vHost wo IP und Port paßt.

Für dein Vorhaben fällt mir akut nur eine Scriptseitige Lösung ein um einen Aufruf per IP Adresse zu verhindern.

Gruß Neffe

Re: http und https auf einem vhost

Posted: 2005-09-01 21:18
by squize
Eine Möglichkeit ist über eine Rewriterule alles abzulehnen, was nicht die gewünschte Domain in der URL hat.

Gruss

Marc