Niederösterreichisches Bildungsservice

mod_ssl für den Apache-Sever

Mit diesem Modul kann eine abhörsichere verschlüsselte Datenübertragung zwischen Server und Client eingerichtet werden. Die hier beschriebene Anleitung wurde mit Version SuSE 7.3 getestet, dürfte aber auch bei älteren Versionen funktionieren.
Alle Befehle und Änderungen müssen vom Benutzer root durchgeführt werden. Das Modul mod_ssl (in Serie sec) muss installiert sein bzw. nachinstalliert werden.

Server-Zertifikat anlegen

Im Verzeichnis
/usr/share/doc/packages/mod_ssl
befindet sich eine Dokumentation für mod_ssl. Dort ruft man als Benutzer root das Skript

./certificate.sh

auf und gibt die Daten für die eigenen Schule ein.
Wichtig: Bei der Frage nach dem Passwort für den Schlüssel mit n (=no) antworten, da sonst ein Starten des Apache-Servers nicht möglich ist.
Im Verzeichis
/etc/httpd/ssl.crt/
ist in der Datei server.crt das Server-Zertifikat gespeichert.

Konfiguration des Apache-Servers anpassen

Anschließend muss die Datei /etc/httpd/httpd.conf angepasst werden. Im Abschnitt für den SSL-Server ändert man die Eintrage

DocumentRoot "/usr/local/httpsd/htdocs"
ServerName www.eigene_schule.ac.at
ServerAdmin webadmin@eigene_schule.ac.at

Wenn das gewählte Verzeichnis noch nicht existiert, muss es natürlich noch angelegt werden. Man kann für den SSL-Server auch dasselbe Verzeichnis /usr/local/httpd/htdocs wie für den ungesicherten Server verwenden. In das DocumentRoot-Verzeichnis legt man zur Demonstration eine Startseite index.html.

Mit dem Befehl yast sollte man noch überprüfen, ob die Startvariable für den SSL-Server auf yes gesetzt ist. Nach dem Aufruf von yast wählt man Administration des Systems -> Konfigurationsdatei verändern und setzt

httpd_sec_mod_ssl=yes
Der Apache-Server muss jetzt mit
rcapache stop
rcapache start

neu gestartet werden. Beim  Starten sollte mod_ssl als Modul erscheinen. Mit einem Webbrowser kann jetzt die neue Startseite aufgerufen werden, indem man als Adresse
https://www.eigene_schule.ac.at
eingibt. Es müsste ein Fenster mit dem Hinweis auf ein neues Zertifikat erscheinen. Ausgestellt wurde es von einer (nicht existierenden) Firma Snake-Oil-Comany. Als Eigentümer sollte die eigene Schule erscheinen.

Gültige Zertifikate ausstellen

Die Dokumentation zu diesem Thema im Verzeichnis /usr/share/doc/packages/mod_ssl ist leider fehlerhaft. Daher eine Anleitung, wie es doch geht.

Wenn man im Verzeichnis
/usr/share/doc/packages/mod_ssl
den Befehl

./mkcert.sh make --no-print-directory /usr/bin/openssl /usr/sbin/ custom

eingibt, dann wird man wie beim oben erwähnten Skript ./certificate.sh aufgefordert die Daten für den Eigentümer und dann die Daten für die Zertifizierungsstelle einzugeben. Man kann sich damit also selber ein Zertifikat ausstellen.

Eine andere Variante besteht darin, dass man im Verzeichnis
/usr/share/ssl/misc
das Skript

./CA.sh -newca

aufruft und die Daten für eine Zertifizierungsstelle (also z. B. die eigenen Daten) eingibt. Hier sollte man für den privaten Schlüssel ein sogenanntes PEM-Passwort eingeben. Im Verzeichnis
/usr/share/ssl
editiert man dann die Datei openssl.cnf und ersetzt die Zeile

policy = policy_match
durch
policy = policy_anything
Einige Zeilen weiter unten die Zeile
commonName = supplied
auf
commonName = optional
ausbessern. Dann in das Verzeichnis
/usr/share/ssl/misc
wechseln. Die Datei /etc/httpd/ssl.csr/server.csr in das Verzeichnis /usr/share/ssl/misc kopieren und dann den Befehl
openssl ca -in server.csr -out server.crt
eingeben. Die neu erstellte Datei server.crt muss dann in das Verzeichnis  /etc/httpd/ssl.crt kopiert werden.
Mit diesem Befehl kann man für andere Eigentümer ein Zertifikat ausstellen.

Damit neue Zertifikate wirksam werden, muss wie oben beschrieben der Apache-Server neu gestartet werden.


Zertifikate für andere Schulen stelle ich mit dieser Methode gratis aus. Senden Sie mir Ihre Datei server.csr an Herwig Reidlinger E-Mail webmaster@pinoe-hl.ac.at.
Das Zertifikat des Pädagogischen Institutes ist unter https://www.pinoe-hl.ac.at/ abrufbar.
Das Betreiben eines SSL-Server macht nur dann Sinn, wenn auf regelmäßig Updates der Paketen openssl und mod_ssl eingespielt werden!


1. Seite Linuxrechner als Internetserver Apache-Server CGI-Skripts

Letzte Änderung am 04.04.2003 E-Mail webmaster@pinoe-hl.ac.at.