This page (revision-11) was last changed on 23-Feb-2009 23:01 by JensKapitza 

This page was created on 03-Oct-2006 21:29 by UnknownAuthor

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
11 23-Feb-2009 23:01 2 KB JensKapitza to previous muss noch überarbeitet werden
10 31-Jan-2008 16:24 3 KB ThomasBayen to previous | to last Virtual Hosts auf eigene Seite
9 25-Jan-2008 12:23 5 KB ThomasBayen to previous | to last Tagging
8 16-Jan-2008 17:26 5 KB PeterHormanns to previous | to last Tagging
7 27-Oct-2007 19:07 5 KB ThomasBayen to previous | to last Apache 2.2 mit SSL installiert
6 16-Dec-2006 23:41 4 KB PeterHormanns to previous | to last KategorieApache
5 25-Nov-2006 16:35 4 KB Jens Kapitza to previous | to last
4 20-Oct-2006 22:48 4 KB PeterHormanns to previous | to last Formatiert für JSPWiki, Link Seite OpenSSL
3 20-Oct-2006 22:47 4 KB PeterHormanns to previous | to last Formatiert für JSPWiki, Link Seite OpenSSL
2 20-Oct-2006 22:44 4 KB PeterHormanns to previous | to last Formatiert für JSPWiki, Link Seite OpenSSL
1 03-Oct-2006 21:29 4 KB UnknownAuthor to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

=!!!>> Apache<< =>>

Den <<[Apache|http://www.apache.org]Apache>> hier vorzustellen, hiesse Eulen nach Athen <<tragen.Hiertragen.>> <<aberDaher
gibts
>> <<einigealle>> <<wichtigeInfos>> <<Punkte.unter>> <<Diehttp://www.apache.org>> <<Einrichtungund>> <<vonhier>> <<[VirtualHosts|ApacheVirtualHosts]nur>> <<hatein>> <<einepaar>> <<eigeneInfos
zu
>> <<Seitebesonderen>> <<bekommen.Themen:>>
<<==
!!
>> <<Virtual Hosts

Wer mehrere verschiedene Webauftritte auf einem einzelnen Rechner
unterbringen will, kann dies mit sogenannten "Virtual Hosts" tun. Dabei wird ein
und derselbe Rechner unter unterschiedlichen DNS-Namen aufgerufen und
der Benutzer bekommt jedesmal einen komplett anderen Webauftritt zu
sehen.

Im Prinzip konfiguriert man dies in der Datei
''/etc/apache/httpd.conf''
folgendermassen:

{{{
 NameVirtualHost *
 <VirtualHost *>
       ServerName localhost
       DocumentRoot /var/www
 </VirtualHost>

 <VirtualHost *>
       ServerName jens
       DocumentRoot /home/jens/public_html/
       ScriptAlias /cgi-bin/ /home/jens/public_html/cgi-bin/
 </VirtualHost>

 <VirtualHost *>
       ServerName bayen.bayen.loc
       DocumentRoot /home/tbayen/public_html/
       ScriptAlias /cgi-bin/ /home/tbayen/public_html/cgi-bin/
 </VirtualHost>
}}}

Alternativ kann man auch das Modul ''mod_vhost_alias'' zu Hilfe
nehmen. Dieses ist interessant, wenn ich wirklich viele Namen und
Webauftritte verwalten will. So kann z.B. jeder Benutzer einen eigenen
Webauftritt unter seinem Benutzernamen haben, wenn man folgendes in die
''/etc/apache/httpd.conf'' einfügt:

{{{
 VirtualDocumentRoot /home/%1/public_html
 VirtualScriptAlias /home/%1/public_html/cgi-bin
}}}

(Im Beispiel ist "%1" verwendet worden. Dies entspricht dem ersten
Teil des verwendeten DNS-Namens. Mit "%0" kann man den gesamten Namen als
Verzeichnisnamen einfügen.)

! Namensauflösung

Zu beachten ist, daß diese Einstellungen hier nichts mit der
Namensauflösung zu tun haben. Man muss also selbstverständlich den Nameserver auch
noch entsprechend konfigurieren.

!!
>>SSL <<==>>

Wer verschlüsselte Verbindungen per SSL haben <<möchtemöchte,>> <<musskann>> <<dasdazu
zwei
>> <<PassendeWege>> <<Modulbeschreiten.>> <<Es gibt ein __mod_ssl__-Modul, das >>im<<
>>Apache <<aktiviertwie>> <<haben.andere>> <<ZuvorModule>> <<geladen werden kann und es gibt eine
SSL-fähige Apache-Version namens __apache-ssl__. Scheinbar
>>ist <<aberes
reine
>> <<einigesGeschmackssache,>> <<anwelche>> <<VorarbeitLösung>> <<man benutzt und auch die
Konfigurationsbefehle scheinen ähnlich
>>zu <<leisten.sein. Ich habe hier mit>>
<<dem Debian-Paket "apache-ssl" herumgespielt und dabei folgendes>>
<<===herausgefunden:

!
>> Erzeugung eines Zertifikats << ===>>

<<Wenn man apache-ssl installiert, wird man nach einigen Angaben für
das Zertifikat gefragt. Dort hat man schnell was falsches
eingegeben. Außerdem ist das dort erzeugte Zertifikat natürlich
auch recht schnell abgelaufen. Deshalb ist es sinnvoll, zu wissen,
wie man eigene Zertifikate erstellt. Dies ist natürlich
insbesondere nötig, wenn man mehrere virtuelle Domains versorgen
will.

>>Als erstes muss man eine Schlüsseldatei erzeugen:
{{{
 openssl genssl >key.pem
}}}
<<
>>Dann kann man mit deren Hilfe ein selbst-signiertes Zertifikat
erstellen:
{{{
 openssl req -new -x509 -key key.pem -out mein.server.loc.pem -days 1095
}}}
<<
>>(1095 Tage sind drei Jahre, das ist die Gültigkeit des Zertifikats)
Der Witz dabei ist, daß man als Namen (''YOUR Name'') den
Domainnamen des Webservers angibt, auf den man nachher zugreifen
will. Es empfiehlt sich, dafür zu sorgen, daß wirklich nur ein Name
benutzt wird. (Also z.B. nicht mit und ohne Domain).

Dieses Zertifikat kann man dann nach ''/usr/lib/ssl/certs/''
kopieren, wo openssl es dann problemlos findet.

Die Konfiguration liegt in <<älteren Apache-Installationen in >>__/etc/apache-ssl/httpd.conf__. Dort
sucht man den Befehl __~SSLCertificateFile__ und gibt den
Dateinamen des Zertifikates an.

<<In neueren Apache-Versionen (ich habe dies mit einem 2.2 getestet) ist die Konfiguration in mehrere Dateien aufgeteilt. Man muss in getrennten Dateien das ssl-Modul laden, den Port 443 aktivieren und dann zwei virtuelle Hosts erzeugen, von denen einer Port 80 und einer Port 443 und SSL benutzt. Das wird kurz und knapp in http://venthur.de/Linux/ApacheSSLHOWTO erklärt.

>>vgl. auch OpenSSL

<<===!>> SSL und virtuelle Domains <<===>>

Beides zusammen ist leider gar nicht einfach. Im Gegenteil - aus
protokolltechnischen Gründen ist es sogar eigentlich unmöglich. Die
Auswahl unterschiedlicher SSL-Zertifikate funktioniert nur anhand
unterschiedlicher IP-Adressen oder Ports, nicht anhand des Namens
(siehe http://www.modssl.org/docs/2.8/ssl_faq.html#ToC47). Als
Notlösung kann man jedoch mit der __Listen__-Direktive den Server
auf unterschiedlichen Ports lauschen lassen und diese dann in der
~VirtualHost-Direktive angeben. Innerhalb des ~VirtualHost-Blocks
kommt dann der ~SSLCertificateFile-Befehl.

Es geht aber doch: In einem Zertifikat können mehrere Common Names oder Aliases
hinterlegt sein!\\
vgl. auch OpenSSL

<<----! Alternativen>>
<<__Links__>>
<<Der Apache ist sicherlich der am weitesten verbreitete Webserver.>>
<<*In>> <<Einspeziellen>> <<gutesAnwendungsfällen,>> <<[HOWTO|http://www.jfranken.de/homepages/johannes/vortraege/apache_inhalt.de.html]d.h.>> <<immer, wenn die Hauptaufgabe
nicht aus dem Ausliefern von statischen Webseiten besteht, können
aber auch Alternativen herangezogen werden. Für Java-Anwendungen
bietet sich
>>zum <<Beispiel der TomcatUnterDebian an. Sehr gut
geeignet ist der
>>Apache <<2.xauch, um solche spezialisierten Lösungen>>
<<miteinander zu verbinden, indem z.B. Anfragen an eine>>
<<[{TagJava-Applikation>> <<Apachean>> <<SSLeinen>> <<ServerDienste}]Tomcat "durchgereicht" werden.
<<
-- ThomasBayen