SSL Zertifikat für den lokalen Server erstellen
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üsselung
Re: 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. Es konnte einfach keine Verbindung hergestellt werden. Also musste ein SSL-Zertfikat her, um unter anderem Dienste wie CardDav und CalDav nutzen zu können.
Anleitung
Diese 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
Zertifikat erstellen
sudo openssl req -new -x509 -days 365 -nodes -out /etc/ssl/localcerts/apache.pem -keyout /etc/ssl/localcerts/apache.key
Der 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 des Verzeichnisses der Zertifikate ändern
sudo chmod 600 /etc/ssl/localcerts/apache*
SSL-Modul von Apache2 aktivieren
sudo a2enmod ssl
Anschließend muss die Konfiguration der Seite default-ssl.conf bearbeitet werden.
sudo nano /etc/apache2/sites-available/default-ssl.conf
Mit Strg + W
nach SSLEngine
suchen.
Folgende Zeilen hinzufügen / oder ändern, falls bereits vorhanden.
SSLEngine OnSSLCertificateFile /etc/ssl/localcerts/apache.pemSSLCertificateKeyFile /etc/ssl/localcerts/apache.key
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-ssl
Das wars mit den Zertifikate. Der Apache2-Server muss anschließend neugestartet werden, damit die Änderungen wirksam werden, entweder
sudo /etc/init.d/apache2 restart
oder
sudo service apache2 restart
Abschluss
Beim Aufruf der Seite https://makesmart-server/cloud/ auf dem lokalen Server erscheint folgende Meldung:
Das 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…
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.
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.