Unsere Daten sind uns allen heilig, keine Frage. Eine Verschlüsselung mit SSL ist im Internet heutzutage gang und gebe. Erkennbar ist eine SSL-Verschlüsselung unter anderem durch den Präfix https:// auf Webseiten. Die Daten werden verschlüsselt an den Zielserver geschickt und können dadurch vom Angreifern nicht ohne weiteres gelesen werden.
Für eine SSL-Verschlüsselung auf dem eigenen Server spricht in erster Linie die Sicherheit. Aber auch die Kompatibilität ist ein immer wichtiger werdendes Thema.
In diesem Post wird ein selbst signiertes Zertifikat erstellt, was für viele Browser als “nicht vertrauenswürdig” eingestuft wird. Trotzdem ist das Zertifikat vollwertig und macht das, was es soll.
Beispiel für eine SSL-VerschlüsselungRe: Programm: Nextcloud-Installer
Nach den Dateien und den Fotos zentral auf meiner eigenen Cloud, wollte ich auch meine Kontakte und meinen Kalender mithilfe von Card- und CalDav mit der Cloud synchronisieren.
Leider war das in der Standardkonfiguration des Webservers nicht möglich, da er nicht mit SSL verschlüsselt war. Also musste ein SSL-Zertfikat her, um unter anderem Dienste wie CardDav und CalDav auf meinem iPhone nutzen zu können.
AnleitungDiese Anleitung bezieht sich auf ein SSL-Zertifikat und dessen Setup mit einem Apache2 Webserver. Apache2 ist bereits installiert und befindet sich in der out-of-the-Box Standard-Konfiguration.
OpenSSL installieren sudo apt-get install openssl Ordner für die Zertifikate anlegen sudo mkdir /etc/ssl/localcerts Zertifikat erstellen sudo openssl req -new -x509 -days 365 -nodes -out /etc/ssl/localcerts/apache.pem -keyout /etc/ssl/localcerts/apache.keyDer Parameter -days 365 bedeutet, dass das Zertifikat 1 Jahr lang gültig ist.
Die beiden Pfade bestimmen den Speicherort und den Namen der Zertifikate.
Es wird nach euren Daten gefragt, die ihr Eingeben müsst. Es spielt dabei keine Rolle, ob die Daten der Wahrheit entsprechen, oder nicht. Sie dienen nur zum Füllen der Informationen des Herausgebers des Zertifikats.
Rechte der Zertifikate ändern sudo chmod 600 /etc/ssl/localcerts/apache* SSL-Modul von Apache2 aktivieren sudo a2enmod sslAnschließend muss die Konfiguration der Seite default-ssl.conf bearbeitet werden.
sudo nano /etc/apache2/sites-available/default-ssl.confMit Strg + W nach SSLEngine suchen.
Folgende Zeilen hinzufügen / oder ändern, falls bereits vorhanden.
mit Strg + O wir die Datei gespeichert. Strg + X zum Verlassen.
Danach muss die eben bearbeitete Seite default-ssl.conf aktiviert werden.
sudo a2ensite default-sslDas wars mit den Zertifikaten. Der Apache2-Server muss anschließend neugestartet werden, damit die Änderungen wirksam werden. Entweder mit dem Befehl
sudo /etc/init.d/apache2 restartoder auch:
sudo service apache2 restart AbschlussBeim Aufruf der Seite https://makesmart-server/cloud/ auf dem lokalen Server erscheint folgende Meldung:
self_ssl_datenschutzfehler.png
Die Zugriffsverweigerung kann umgangen werden, mithilfe von
[Erweitert] -> Weiter zu makesmart-server/cloud/Danach ist die Seite in Zukunft wieder ganz normal erreichbar. Die Meldung wird nicht mehr angezeigt und die Verbindung ist verschlüsselt.
Der Grund für die Meldung ist folgender: Wir haben das Zertifikat selbst erstellt und gelten damit leider als nicht vertrauenswürdige Quelle… 😄 Tja…
chrome_zertifikat.png
Trotzdem können wir jetzt auch im lokalen Netzwerk von der SSL-Verschlüsselung profitieren…
… und ich kann jetzt auch endlich meine Kontakte und meine Kalender synchronisieren. 🔥
SSL erzwingenWeiterhin sind die Webseiten auf dem Server über http:// erreichbar. Um eine Verbindung via https:// zu erzwingen, fügt folgenden Abschnitt in die Datei default-ssl.conf ein.
sudo nano /etc/apache2/sites-enabled/default-ssl.conf <VirtualHost *:80> RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] </VirtualHost>Mit dem Befehl
sudo a2dissite 000-defaultkann die Standard-Seite ohne SSL deaktiviert werden. Anschließend muss der Webserver nochmal neugestartet werden.
sudo service apache2 restartAb sofort wird der gesamte Traffic auf https:// umgeleitet.
PS für alle Cloud-Nutzer:
Ihr müsst im Desktop sowie im Mobile-Cient den Link von http:// auf https:// ändern.
Haut rein! 👌
Verbesserungen und Anregungen gerne mitteilen.