Die Odyssee zu einem sicheren Server

Dieses Dokument beschreibt die nötigen Schritte, um SSL auf einem Apache Webserver 2.0.42 in Windows 2000 zu installieren. Es gibt viele Anleitungen im WWW, aber ich habe festgestellt, dass sie entweder nicht alle Informationen oder die Information gar verdreht haben, sodass es für einen unerfahrenen Webmaster sehr schwierig wird, das richtige zu tun. Dieses Dokument ist deswegen redundant, aber ich hoffe dass es neuen Webmastern bei ihren ersten SSL-Schritten helfen kann. Ich gebe die Links zu anderen Dokumenten im WWW wenn immer möglich.

Achtung: Ich habe die Apache Version 2.0.42 und OpenSSL Version 0.9.6g verwendet. Die Dateien, die hier verwendet werden, arbeiten vermutlich nicht mit späteren Versionen von Apache zusammen. Ganz bestimmt funktionieren sie aber nicht mit früheren Versionen!

23.10.2002:

Jetzt gibt es die Dateien auch fü Apache 2.0.43. Einfach nach http://hunter.campbus.com gehen und die richtige Version runterladen. Dann den Schritten hier folgen.

11.04.2003:

Auf der Seite http://hunter.campbus.com gibt es jetzt die Version 2.0.45 mit OpenSSL 0.9.7a. Ich habe festgestellt, dass in den Verzeichnissen bin, lib und modules einiges anders ist und ein neues Verzeichnis include enthält - wer diese Version installiert (empfohlen), einfach das ganze jeweilige Verzeichnis entpacken und kopieren. Seit der Version 2.0.42 sind die Module kompativel, also entstehen keine Probleme.

Bitte die folgenden Anweisungen sehr sorgfältig lesen.


Benötigte Dateien

(man kann sie genausogut jetzt gleich runterladen)

Konventionen (oder: über was rede ich eigentlich?)

Apache-Dir: Das Verzeichnis, in dem Ihr Apache installiert ist, z. B. "C:\Programme\Apache Group\Apache2".
Archiv: Das Archiv mit Apache und OpenSSL, das man unter benötigte Dateien heruntergeladen hat.
WebRoot: Das Verzeichnis in dem Sie Ihre Webseiten unterbringen.


Apache Konfiguration Teil 1

Von http://www.raibledesigns.com/tomcat/ssl-howto.html.

Apache sollte nicht laufen.

Ändern Sie wenigstens die folgenden Parameter in der Datei "Apache-Dir/conf/httpd.conf":

Installieren/starten Sie den Apache Dienst. Überprüfen Sie dass alles funktioniert, bevor Sie mit der SSL Installation fortfahren. So werden mögliche Fehler vermieden.

Woher man mod_ssl bekommt

Von http://www.raibledesigns.com/tomcat/ssl-howto.html.

Aus dem "bin" Verzeichnis im Archiv, kopieren Sie die Dateien "ssleay32.dll" und "libeay32.dll" nach "WINNT/system32" auf Ihrem Webserver. Kopieren Sie die Datei "openssl.exe" im gleichen Verzeichnis im Archiv nach "Apache-Dir\bin" auf Ihrem Webserver.

Kopieren Sie die Konfigurationsdatei für OpenSSL nach "Apache-Dir\bin" auf Ihrem Webserver.

Erstellen eines Test-Zertifikates

Von http://tud.at/programm/apache-ssl-win32-howto.php3.

Öffnen Sie ein DOS-Fenster auf Ihrem Webserver und wechseln Sie in das Verzeichnis "Apache-Dir\bin".

  1. Geben Sie ein:
    "openssl req -config openssl.cnf -new -out my-server.csr".
    Dies erstellt ein Zertifikat und einen privaten Schlüssel. Wenn Sie nach "Common Name (eg, your websites domain name)" gefragt werden, geben Sie Ihren exakten Domain Namen an (z. B. www.my-server.dom). Das Zertifikat gehört zu diesem Server und die Browser würden sich beschweren wenn die Namen nicht zusammenpassen.
  2. Geben Sie ein:
    "openssl rsa -in privkey.pem -out my-server.key".
    Dies entfernt das Passwort aus dem privaten Schlüssel. Sie MÜSSEN verstehen, was dies bedeutet; "my-server.key" sollte nur vom Apache Server und dem Systemadministrator gelesen werden können. Falls sie existiert, sollten Sie die Datei ".rnd" löschen, da sie die Entropie für die Schlüsselerzeugung enthält und für kryptografische Angriffe verwendet werden kann.
  3. Geben Sie ein:
    "openssl x509 -in my-server.csr -out my-server.cert -req -signkey my-server.key -days 365".
    Dies erzeugt ein selbstsigniertes Zertifikat dass Sie benutzen können, bis Sie ein "richtiges" von einer Zertifiziereinheit bekommen. (Allerdings ist das nicht vorgeschrieben; wenn Sie Ihre Benutzer kennen, können Sie ihnen Mitteilen das Zertifikat zu installieren.) Beachten Sie, dass dieses Zertifikat nach einem Jahr ausläuft, Sie können -days 365 erhöhen wenn Sie dies nicht wünschen.

Falls Sie Benutzer mit dem MS Internet Explorer 4.x haben und wollen, dass sie das Zertifikat in ihren Zertifikatordner installieren können, müssen Sie eine DER-Version Ihres Zertifikats erstellen. Geben Sie dazu ein:
"openssl x509 -in my-server.cert -out my-server.der.crt -outform DER".

Erstellen Sie das Verzeichnis "Apache-Dir/conf/ssl" und verschieben Sie "my-server.key" und "my-server.cert" danach.

Apache Konfiguration Teil 2

Von http://www.raibledesigns.com/tomcat/ssl-howto.html.

Halten Sie den Apache Dienst an.

Kopieren Sie die Datei "mod_ssl.so" aus dem Verzeichnis "modules" im Archiv nach "Apache-Dir\modules" auf Ihrem Webserver.

Finden Sie die LoadModule Direktive in Ihrer "httpd.conf" Datei und fügen Sie die folgende hinzu:

  LoadModule ssl_module modules/mod_ssl.so

Sollte die Zeile bereits auskommentiert vorhanden sein, genügt es, den Kommentar zu entfernen.

In einigen Versionen kann es nötig sein,

  AddModule mod_ssl.c

nach den anderen AddModule Zeilen hinzuzufügen (nicht nötig für 2.0.42 und 2.0.43).

Kopieren Sie "ssl.conf" aus dem Archiv nach "Apache-Dir\conf". Ändern Sie folgendes:

"ssl.conf" sollte mindestens die folgenden Zeilen beinhalten (überprüfen Sie die Namen der Zertifikate):

	Listen 443
	
	# see http://www.modssl.org/docs/2.4/ssl_reference.html for more info
	SSLMutex sem
	SSLRandomSeed startup builtin
	SSLSessionCache none

	ErrorLog logs/ssl.log
	LogLevel info
	# You can later change "info" to "warn" if everything is OK

	<VirtualHost www.my-server.dom:443>
	  SSLEngine On
	  SSLCertificateFile conf/ssl/my-server.cert
	  SSLCertificateKeyFile conf/ssl/my-server.key
	</VirtualHost>

Sie müssen die -D SSL Option verwenden, wenn die IfDefine Directive in der Konfigurationsdatei spezifiziert ist, um Apache mit SSL zu starten.
Am besten kommentieren Sie die IfDefine Start- und Endetags in "ssl.conf" aus.

Starten Sie den Server, dieses mal vom DOS-Fenster aus, sodass Sie die Fehlermeldungen gut sehen können (geben Sie "apache -k start" ein). Falls alles OK ist, können Sie (wahlweise) "apache -k stop" eingeben und Apache als Dienst starten.

Falls es nicht funktioniert, sollte Apache aussagekräftige Fehlermeldungen auf den Bildschirm und/oder in die Dateien "error.log" und "SSL.log" im Verzeichnis "Apache-Dir/logs" schreiben.
Falls es nicht funktioniert und Sie wissen nicht, was nicht stimmt, versuchen Sie, alle LogLevels auf die höchste Stufe zu setzen und studieren Sie die Dateien. Die Logs sind sehr hilfreich.

Versuchen Sie über https://www.my-server.dom:443/ auf Ihren Server zuzugreifen. Sie sollten eine Meldung zur Installation des Zertifikates erhalten und dann auf Ihrer Seite landen.

Probleme und Lösungsansätze


Es funktioniert immer noch nicht?

Falls Sie Probleme bei der Installation von APache haben, sehen Sie auf der Apache Webswite nach.

Bevor Sie uns eine Email zusenden, suchen Sie in den folgenden Ressourcen zuerst (weil ich das auch tat)! Schon viele Leute haben dies versucht, und auch Hilfe erhalten.


©2002 Op3racional. Author Sabine Dinis Blochberger. Suport email suporte@op3racional.de