Apache: Unterschied zwischen den Versionen
Rkr (Diskussion | Beiträge) |
Rkr (Diskussion | Beiträge) |
||
Zeile 102: | Zeile 102: | ||
== Dokumentation == | == Dokumentation == | ||
Version vom 26. September 2006, 14:04 Uhr
Virtual Hosts mit SSL
Echte IP-based Virtual Hosts
Die beliebten named-based Virtual Hosts lassen sich eigentlich mit SSL nicht verwenden (Begründung siehe hier). Man muss also pro Virtual Host eine separate IP-Adresse verwenden, z.B. durch Zuweisung einer Alias-IP-Adresse und (bei NAT) Umleitung eines zusätzlichen Ports vom Router.
Die Konfig sieht dann so aus:
<IfDefine SSL> <IfDefine !NOSSL> <Directory "/srv/www/vhosts/server1"> Options None AllowOverride AuthConfig Order allow,deny Allow from all </Directory> <Directory "/srv/www/vhosts/server2"> Options None AllowOverride AuthConfig Order allow,deny Allow from all </Directory> <VirtualHost 1.1.1.1:443> ... DocumentRoot "/srv/www/vhosts/server1" ... SSLCertificateFile /etc/apache2/ssl.crt/server1.crt SSLCertificateKeyFile /etc/apache2/ssl.key/server1.key ... </VirtualHost> <VirtualHost 1.1.1.2:443> ... DocumentRoot "/srv/www/vhosts/server2" ... SSLCertificateFile /etc/apache2/ssl.crt/server2.crt SSLCertificateKeyFile /etc/apache2/ssl.key/server2.key ... </VirtualHost> </IfDefine> </IfDefine>
Vorteil: Man kann jedem Virtual Host eigene Keys und SSL-Zertifikate zuordnen.
Named-based Virtual Hosts
Es ist jedoch mit named-based Virtual Hosts zumindest möglich, Server mit verschiedenen DocumentRoot Verzeichnissen aufzusetzen . Allerdings wird dabei immer nur das SSL-Zertifikat des ersten Hosts verwendet, da der Host-Header erst nach dem SSL-Handshake ausgewertet wird (so dass es am Client ggf. eine Fehlermeldung gibt).
Die Konfig sieht dann so aus:
NameVirtualHost *:443
<IfDefine SSL> <IfDefine !NOSSL> <Directory "/srv/www/vhosts/server1"> Options None AllowOverride AuthConfig Order allow,deny Allow from all </Directory> <Directory "/srv/www/vhosts/server2"> Options None AllowOverride AuthConfig Order allow,deny Allow from all </Directory> <VirtualHost *:443> ... DocumentRoot "/srv/www/vhosts/server1" ... SSLCertificateFile /etc/apache2/ssl.crt/server1.crt SSLCertificateKeyFile /etc/apache2/ssl.key/server1.key ... </VirtualHost> <VirtualHost *:443> ... DocumentRoot "/srv/www/vhosts/server2" ... SSLCertificateFile /etc/apache2/ssl.crt/server1.crt SSLCertificateKeyFile /etc/apache2/ssl.key/server1.key ... </VirtualHost> </IfDefine> </IfDefine>
SSL-Proxy
Das Problem mit mehreren IP-Adressen kann man umgehen, wenn man das Modul mod_rewrite einsetzt, um einen "SSL-Proxy" zu bauen. Siehe z.B. http://www.serversupportforum.de/forum/faqs-anleitungen/2558-howto-ssl-proxy.html.
Nachteil: Unschöne URLs.