Apache2 Installation

Aus Joachim Schuster Wiki
Wechseln zu: Navigation, Suche

Bei der Apache2-Installation unter SUSE 10.0 GM ergab sich folgender Fehler: Obwohl unter YaST -> Netzwerkdienste -> HTTP-Server -> Module userdir auf aktiviert gesetzt war, war ein Zugriff auf den public_html Ordner nicht möglich (Access forbidden).

Nachdem ich alle Apache2-Pakete wieder entfernt hatte und erneut installierte, war ohne weiteres Zutun der Zugriff möglich.

Ich nehme an, das Problem liegt daran, dass die erste Installation dadurch erfolgte, dass ich HTTP-Server im Menü aufrief und somit die Installation von Apache2 automatisch startete. Scheinbar ergab sich daraus aber eine fehlerhafte Konfiguration.


Um Sessions in PHP zu ermöglichen muss man unter SUSE noch das Paket php4-session nachinstallieren.

Für die Unicode utf-8 Unterstützung muss man das Paket php4-mbstring nachinstalliert werden.

SSL (HTTPS) einrichten

Um SSL (Secure Socket Layer) zu aktivieren muss man unter SUSE das ssl-Modul aktivieren. Am bequemsten geht das über Yast -> Netzwerkdienste -> HTTP-Server -> Module. Dort das Modul ssl aktivieren. Im Verzeichnis /etc/apache2/vhosts.d findet man eine Datei vhost-ssl.template. Diese kopiert man ins gleiche Verzeichnis unter den Namen, den der Server hat (z.B. localhost) mit der Endung .conf:

cp vhost-ssl.template localhost.conf

In dieser Datei stehen die Informationen, auf welchen Port gelauscht werden soll, und welche Zertifikate für diesen (virtuellen) Host benutzer werden sollen:

SSLCertificateFile /etc/apache2/ssl.crt/server.crt
SSLCertificateKeyFile /etc/apache2/ssl.key/server.key

Um einen (unsigniertes) Zertifikat zu erzeugen, kann man:

 /usr/bin/gensslcert

eingeben. Dies Erzeugt die nötigen Schlüssel ohne Benutzerzutun. Möchte man einen etwas spezifischeres (jedoch trotzdem unsigniertes) Zertifikat erstellen, so kann man auch im Verzeichnis /etc/apache2 folgende Zeile eingeben:

openssl req -new -x509 -nodes -days 365 -out ssl.crt/server.crt -keyout ssl.key/server.key

Anschließend wird man nach Informationen zur Firma befragt:

Generating a 1024 bit RSA private key
..........++++++
......++++++
writing new private key to 'ssl.key/server.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:Germany
Locality Name (eg, city) []:Wuerzburg
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Schuster
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:domainname.de
Email Address []:admin@domainname.de

Unter Common Name muss der auflösbare Namen des Servers (z.B. domainname.de o.ä.) stehen, über den er im Internet erreichbar ist. Wird das Zertifikat an einen Client ausgeliefert und Common Name stimmt nicht mit dem Namen des ausliefernden Servers überein, so weißen einige Browser darauf hin, dass dieses Zertifikat evtl. untergeschoben sei und nicht wirklich zu dem angeblich vertrauenswürdigen Server passen würde.

Mit folgenden Befehlen kann man überprüfen, ob das Zertifikat korrekt erstellt wurde:

openssl rsa  -noout -text -in ssl.key/server.key
openssl x509 -noout -text -in ssl.crt/server.crt

Nun muss noch in Yast unter System -> editor für /etc/sysconfig-Dateien der Eintrag Netzwerk -> WWW -> Apache2 -> APACHE_SERVER_FLAGS editiert werden und SSL hinzugefügt (wahrscheinlich gibt es noch gar keinen anderen Eintrag) werden, damit das SSL-Modul auch bei jedem Apache2-start mitgeladen wird. Jetzt muss der Apache2-Dienst neu gestartet werden:

rcapache2 restart

Und nun kann man schon die verschlüsselte Verbindung nutzen.

Weitere Infos

file:///usr/share/doc/packages/apache2/README.QUICKSTART.SSL (wird bei Apache2 mitinstalliert)

[sehr gute Anleitung für SSL unter SUSE]

[offizielle Apache2-Hilfe]