Wir gehen von einer funktionsfähigen Apache2 Webserver Installation auf Linux aus. Mit der Aktivierung der SSL-Verschlüsselung für einen Apache2 Webserver ist es möglich Webseiten vom eigenen Server verschlüsselt zu übertragen. Wir nutzen dazu ein selbst erstelltes SSL Zertifikat. Möchte man seine Webseite vollkommen öffentlich betreiben sollte man auf ein offizielles Zertifikat zurückgreifen, dass zum Beispiel bei uns bei 85 Euro pro Jahr liegt.
Erzeugen wir als erstes ein SSL Zertifikat.
Sollte ein gekauftes Zertifikat bereits bestehen entfällt dieser Schritt natürlich.
Da hier verschiedene, zum Teil ineinander geschachtelte Befehle ausgeführt werden müssen, empfiehlt es sich ein Pseudo-Root-Terminal 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. 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 dieser Änderung muss der Apache Webserver neu gestartet werden. 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. Nun wird der VirtualHost für SSL eingerichtet. Für die Konfiguration wird die Datei /etc/apache2/sites-available/ssl mit folgendem Inhalt erstellt:
NameVirtualHost *:443 <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. 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.abc.de und https//:www.def.de über den selben Apache ausliefern zu lassen. Nur unter Verwendung einer zusätzlichen IP-Nummer (und anschließender Anpassung der Listen-Direktiven) würde dieses Szenario funktionieren.