Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Diese Anleitung beschreibt die Aktivierung der SSL-Verschlüsselung für den Apache2-Webserver. Dadurch ist es möglich, Webseiten vom eigenen Webserver verschlüsselt über das Internet zu öffnen. Dabei wird ein selbst erstelltes SSL-Zertifikat genutzt. Soll der Webserver in einem öffentlichen Rahmen laufen, so sollte man sich um ein korrektes Zertifikat bemühen. Siehe Links am Ende der Seite.
Dieser Schritt kann entfallen, wenn man schon über ein Zertifikat verfügt.
Als erster Schritt muss ein Zertifikat erstellt werden. Da hier verschiedene, zum Teil ineinander geschachtelte Befehle ausgeführt werden müssen, empfiehlt es sich ein Pseudo-Root-Terminal [1] mittels
sudo -s
zu öffnen. Danach kann man das Zertifikat erzeugen.
mkdir -p /etc/apache2/ssl openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem ln -sf /etc/apache2/ssl/apache.pem /etc/apache2/ssl/`/usr/bin/openssl x509 -noout -hash < /etc/apache2/ssl/apache.pem`.0 chmod 600 /etc/apache2/ssl/apache.pem
Den Wert nach -days nach Belieben anpassen, je nachdem wie lange das Zertifikat gelten soll.
Um SSL/TLS verwenden zu können, muss der Apache Webserver auf TCP Port 443 lauschen. Hierzu muss die Datei /etc/apache2/ports.conf geändert werden [2]. Diese sieht standardmäßig so aus:
Listen 192.168.1.10:80 #<IfModule mod_ssl.c> # Listen 443 #</IfModule>
Diese muss so abgeändert werden:
Listen 192.168.1.10:80
<IfModule mod_ssl.c>
Listen 443
</IfModule>Nach der Änderung muss der Apache Webserver mit "reload" neu gestartet werden[3].
service apache2 reload
Anschließend aktiviert man das SSL-Modul des Webservers mit:
sudo a2enmod ssl
Nach dem Laden des Moduls muss der Apache Webserver mit "force-reload" neu gestartet werden[3].
Nun wird der VirtualHost für SSL eingerichtet. Für die Konfiguration wird die Datei /etc/apache2/sites-available/ssl mit folgendem Inhalt erstellt:
<virtualhost *:443>
...
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
...
</virtualhost>Die neue VirtualHost-Konfiguration muss noch aktiviert werden:
sudo a2ensite ssl
Nach diesen Änderungen ist ein Neustart des Apache Webserver nötig ("force-reload")[3]
Hiervon darf es aus technischen Gründen nur einen geben, da vom Apache für den Port 443 nur ein einziges SSL-Zertifikat ausgeliefert werden kann. Es ist also nicht möglich, die Adressen https://www.seite1.de und https://www.seite2.de über den selben Apache ausliefern zu lassen. Nur unter Verwendung einer zusätzlichen IP-Nummer (und anschließender Anpassung der Listen-Direktiven) oder bei einem entsprechenden Vorhandensein der subjAltName-Erweiterung
im SSL-Zertifikat würde dieses Szenario funktionieren.
Erscheint beim Starten des Servers die Fehlermeldung
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:443 no listening sockets available, shutting down
so sollten die Einträge in /etc/apache2/ports.conf überprüft werden.
Dort darf der Eintrag
Listen 443
nur einmal vorhanden sein. Auch in anderen Dateien der Apache-Konfiguration darf diese Direktive nicht nochmal vorkommen!
Erscheint beim Seitenaufruf im Browser die Fehlermeldung
Fehlercode: ssl_error_rx_record_too_long
liegt das meist an fehlerhaft konfigurierten vHosts. Die wichtigsten Eckdaten für einen reibungslosen Betrieb von vHosts mit SSL sind wie folgt:
Es sollten zwei NameServerHost-Einträge innerhalb der Dateien in /etc/apache2/sites-available/ vorhanden sein
NameVirtualHost *:80 NameVirtualHost *:443
Der Eintrag für Port 80 sollte in default und der Eintrag für Port 443 in ssl sein, dies muss nicht so sein; sollte es aber, wenn lediglich diesem Wiki-Beitrag gefolgt wurde und ansonsten keine Änderungen der Konfiguration vorgenommen wurden.
Oftmals wird es gewünscht, dass gewisse Seiten nur über https erreicht werden können. Ein klassisches Beispiel sind Webmailer wie Squirrelmail oder RoundCube Webmail
. Dies kann man mit dem Modul mod_rewrite für Apache erreichen.
Diese Revision wurde am 11. Oktober 2011 um 18:56 Uhr
von Canomat erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet:
Netzwerk, Server, Internet, Sicherheit, Verschlüsselung
2004 – 2011 ubuntuusers.de • Einige Rechte vorbehalten