Apache: Unterschied zwischen den Versionen
Rkr (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Rkr (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
Dokumentation | == 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 [http://www.modssl.org/docs/2.6/ssl_faq.html#ToC46 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: | |||
<pre> | |||
<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> | |||
</pre> | |||
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: | |||
<pre> | |||
NameVirtualHost *:443 | |||
</pre> | |||
<pre> | |||
<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> | |||
</pre> | |||
=== 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. | |||
== Dokumentation == | |||
*[http:/manual Handbuch] |
Version vom 26. September 2006, 13:48 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.