Apache/SSL-Anleitung
aus openSUSE, der freien Wissensdatenbank
Inhaltsverzeichnis |
Schnellstart.SSL
Wie Sie ihren SSL-Server so schnell wei mögliche einrichten und zum Laufen bringen.
Bevor Sie diese Anleitung nutzen, sollten Sie die Apache-Schnellstartanleitung gelesen haben!
Voraussetzungen
- Stellen Sie sicher, dass Apache beim Starten mod_ssl lädt. Das folgende Kommando passt /etc/sysconfig/apache2:APACHE_MODULES so an, dass dies der Fall ist:
a2enmod ssl
- Stellen Sie sicher, dass die SLL-Konfiguration aktiv ist. Das folgende Kommando sorgt für die Aktivierung (ähnlich dem a2enmod-Kommando ändert dieses APACHE_SERVER_FLAGS):
a2enflag SSL
Das SSL-Flag muss gesetzt sein, weil jede SSL-Konfiguration von einem <IfDefine>-Statement umschlossen ist. So kann SSL ruhen bis die Voraussetzungen (Schlüssel) gegeben sind und Sie es nutzen möchten. Zusätzlich kann dies dabei nützlich sein, wenn Sie Apache unbeaufsichtigt beim Booten starten wollen, auch dann, wenn Sie Kroyptographieschlüssel nutzen, die ansonsten eine Passworteingabe erfordern.
Schlüssel
- Für eine echte SSL-Einrichtung empfehle ich TinyCA (http://tinyca.sm-zone.net/), um die SSL-Konfiguration zu erstellen und zu verwalten. Es ist als openSUSE-Paket verfügbar: software.opensuse.org. Schauen Sie sich bitte auch die Dokumentation zu mod_ssl an.
- Die folgenden Schritte erstellen sehr einfach Attrappenschlüssel:
- Führen Sie /usr/bin/gensslcert aus.
- Es wird die folgenden Dateien (über)schreiben:
/etc/apache2/ssl.crt/ca.crt
/etc/apache2/ssl.key/server.key
/etc/apache2/ssl.crt/server.crt
/etc/apache2/ssl.csr/server.csr
- Eine Kopie von ca.crt wird als /srv/www/htdocs/CA.crt zum Herunterladen erstellt.
Erstellen Sie einen virtuellen Host (benötigt)
|
(Hinweis) Beachten Sie, dass die virtuellen Hosts IP-basiert sein müssen, wenn Sie mehrere HTTPS-Hosts einrichten wollen, da namensbasierte virtuelle Hosts nicht funktionieren werden. Die Erklärung dafür finden Sie in der Apache-Dokumentation |
- Kopieren Sie /etc/apache2/vhosts.d/vhost-ssl.template nach /etc/apache2/vhosts.d/vhost-ssl.conf und passen Sie es ihren Bedürfnissen an.
- Sie brauchen einen separaten virtuellen Host, weil ein vhost nicht gleichzeitig über HTTP und HTTPS kommunizieren kann.
- Beachten Sie, dass die Datei auf .conf enden muss, um automatisch eingelesen zu werden.
- Starten Sie Apache neu, /etc/init.d/apache2 restart
- Um ihre vhost-Einrichtung zu prüfen, nutzen Sie httpd2 -S -DSSL.
Konfigurationsfragen
Für Fragen zur Konfiguration halten Sie sich an die Anleitung: http://localhost/manual (falls das Paket apache2-doc installiert ist), oder http://httpd.apache.org/docs-2.2/de/ (die Online-Version).
Lesen Sie die Dokumentation unter /usr/share/doc/packages/apache2/ (wo Sie auch Beispielkonfigurationsdateien finden).
PROBLEMLÖSNG
Falls alles nicht funktioniert...
- Starten Sie tail -F /var/log/apache2/*_log & in einer Root-Shell.
- Reproduzieren Sie das, was nicht funktioniert (starten Sie Apache, lösen Sie Client-Anfragen aus, oder was auch immer), um es in den Protokollen zu sehen.
- Wenn Sie einen Fehler vermuten, nutzen Sie bugzilla.novell.com.
Häufige Probleme
Der Server protokolliert
[Thu Aug 28 21:07:39 2003] [error] [client 192.168.0.180] Invalid method in request j
während der Client dies anzeigt:
SSL error: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
Ursache: Der Client spricht über HTTPS, währen der Server HTTP nutzt. Wenn dies auf Port 443 passiert heißt das, dass der Server zwar auf diesem Port lauscht, aber nicht mit SSL.
Wenn es andersrum ist (Client spricht HTTP, Server spricht HTTPS), würde der Server 400 protokollieren und der Client würde Fehlerseite 400 (HTTP_BAD_REQUEST) anzeigen.

