Linux als SOHO-Server
für Linux- und Windows-Clients |
Kapitel:
|
SSL (Secure Socket Layer) ist ein Protokoll zur verschlüsselten Datenübertragung. Für den Apache-Server gibt es ein entsprechendes SSL-Modul ('mod_ssl'), mit den es möglich ist eine gesicherte Übertragung zu gewährleisten. Dieses Prinzip der gesicherten Verbindung findet man z.B. beim Online-Shopping oder Online-Banking wieder. SSL basiert auf einer asymmetrischer Verschlüsselung, dass bedeutet:
Verschlüsselt wird mit dem einen Schlüssel (der auch öffentlich sein darf,
daher: 'Public Key'), entschlüsselt wird mit einem zweiten, geheimen Schlüssel
('Secret Key'). In Verlauf dieses Unterkapitels wird gezeigt, wie der Apache2 für SSL-Verbindung genutzt werden kann. In dem folgenden Beispiel wird 'OpenSSL' und das Apache Modul: 'mod_ssl' verwendet. Installation / KonfigurationBevor SSL bei Apache eingesetzt werden kann, muss 'OpenSSL' installiert sein. Unter Debian wird dieses schon bei der Basis-Installation erledigt, sollte es dennoch fehlen, so kann es einfach mittels 'apt-get install openssl' nachinstalliert werden. Nachdem 'OpenSSL' zur Verfügung steht, sollte ein Test-Zertifikat erstellt werden. Unter Debian kann diese mit dem Kommandozeilenaufruf: 'apache2-ssl-certificate' geschehen, siehe Bsp. (Für Debian 4.0 siehe Vorgehensweise unten, unter Anmerkung):
Bei der Erstellung des Zertifikates werden verschiedene Parameter abgefragt. Wichtig ist vor allem, dass bei der Frage: 'server name' der vollständige Hostname der SSL-Site angegeben wird. Nach der Erstellung des Zertifikates liegen unter Debian im Verzeichnis '/etc/apache2/ssl/' zwei Dateien, wobei eine nur ein Link auf die andere mit einem zufälligen Dateinamen ist. Beide werden im Folgenden benötigt. Als nächstes ist das Modul: 'mod_ssl' zu aktivieren, das Modul sollte bei der Basis-Installation von 'apache2' mit installiert worden sein. Die Aktivierung des Moduls geschieht mit dem Kommando:
Da SSL über den Port: '443' betrieben wird ist dieser noch zusätzlich in der Datei 'ports.conf' einzutragen:
Es ist einfach ein 'Listen 443' in der Datei einzufügen. Als nächster Schritt ist eine virtueller Host zu definieren, welches die SSL-Site repräsentiert; hierzu ein Bsp:
In diesem Bsp. wird der virtuelle Host: 'ssl-test.tld' installiert, der Direktive 'NameVirtualHost' ist erforderlich bei namensbasierten virtuellen Hosts. Der Standard-TCP-Port für diese Verbindungen ist nicht der HTTP-Port: '80', sondern '443'. Innerhalb der virtuellen Hosts befinden sich die Direktive für die SSL-Funktionalität. Der Direktive 'SSLEngine' schaltet die SSL-Funktion ein, 'SSLCertifikateFile' bzw 'SSLCertificateKeyFile' verweißt auf das SSL-Zertifikat. Unter 'SSLCertificateKeyFile' ist der oben erstellte zufällige Dateiname (Link) anzugeben. Möchte man, dass ausschließlich nur gesicherte Verbindungen möglich sind so ist die Anweisung 'SSLRequireSSL' zu aktivieren. Nach der Erstellung des virtuellen Hosts ist dieser mit:
zu aktivieren, anschließend sollte ein Neustart des Apache-Servers mittels:
erfolgen. Test der SSL-VerbindungEin erster Test der SSL-Verbindung kann mit einen Browser (in diesem Bsp. z.B. mit dem Internet-Explorer) stattfinden. Nach Eingabe der URL: 'https://ssl-test.tld' sollte nun ein Sicherheitshinweis kommen das nun über eine sichere Verbindung die Seiten angezeigt werden:
Nach der Bestätigung mit 'OK' kommt ein weitere Sicherheitshinweis. Es wird hier angezeigt, ob das Zertifikat von einer vertrauenswürdigen Firma ausgestellt wurde, ob das Datum des Zertifikat noch gültig ist und ob der Name der Site mit dem auf dem Sicherheitszertifikat angegebenen Namen übereinstimmt.
Mit dem Button 'Zertifikat anzeigen'
können noch weitere Details des Zertifikates angesehen werden.
Während der gesamten SSL-Übertragung sollte das 'Schloss' geschlossen bleiben. AnmerkungenSoll ein bestehendes Zertifikat ersetzt werden, so ist die Option '--force' bei der Erstellung zu wählen, die Gültigkeitsdauer kann mit der Option '-day xxx' bestimmt werden.
In diesem Bsp. wird ein neues Zertifikat mit einer Gültigkeitsdauer von 365 Tagen erzeugt. Weiter Parameter für den SSL-Betrieb lassen sich auf den entsprechenden Internetseiten nachlesen. Unter Debian 4.0 (Etch) ist das Kommando 'apache2-ssl-certificat' wie oben beschrieben nicht mehr vorhanden. Um unter Debian 4.0 (Etch) ein Zertifikat zu erzeugen sollte 'openssl' von der Kommandozeile aus genutzt werden, hier ein Bsp.:
Nach der Generierung des Zertifikates liegt eine Date 'apache.pem' im Verzeichnis '/etc/apache2/', die sollte anschließend mit den richtigen Dateirechten Versehen werden:
Nachdem das Zertifikat nun unter Debian 4.0 vorliegt kann wie oben beschrieben fortgefahren werden. Weitere Infos
letzte Änderung: 10. Februar 2008 |
Copyright © 2004 Norbert Eusterholz |