Im letzten Beitrag haben wir gelernt, was für Vorteile eine grafische Benutzeroberfläche für Datenbanken hat und wir haben auf unseren Raspberry Pi phpMyAdmin installiert. Anschließend haben wir nginx so konfiguriert, dass man nur über localhost auf phpMyAdmin zugreifen kann und die Implementierung erfolgreich getestet.
Jetzt haben wir nur noch einen letzten Schritt zu tun, bevor wir die Cloud Software (nextcloud) auf unseren Raspberry Pi installieren und das ist die SSL Verschlüsselung unserer Verbindung.
Was ist SSL?
Ein SSL Zertifikat ist ein Zertifikat, was von einer Zertifizierungsstelle vergeben wird. Es gibt bestimmte Unternehmen (CA) , die als vertrauenswürdige Zertifizierungsstellen anerkannt sind. An diese Unternehmen oder deren Vertragspartner kann man sich melden und bekommt dann von denen ein SSL-Zertifikat samt eines RSA Schlüssels. Danach ist die Verbindung zum Server verschlüsselt.
Was bedeutet das?
Wenn ihr zum Beispiel auf die Browserleiste oben schaut, seht ihr, dass links neben der Adresszeile ein Schloss angezeigt wird. Das ist ein Zeichen, dass ein gültiges Zertifikat hinterlegt und unsere Verbindung verschlüsselt ist.
Hätte ich keinen SSL Zertifikat, würden alle Daten zwischen eurem Computer und meinem Server in Klartext durch das Internet geschickt werden. Ihr könnt euch das in etwa so vorstellen:
Würde ich kein SSL Zertifikat besitzen und ein Hacker würde sich zwischen eurem PC und meinem Server einnisten, könnte er alles klar und deutlich mitlesen und mitsehen. Sogar die Videos die ihr schaut, könnte er mitstreamen.
Was ist Let’s encrypt?
Irgendwann kam man auf die Frage, wieso man denn nicht einfach das ganze Internet über https verschlüsselt und aus dieser Intention heraus ist Let’s encrypt entstanden. Diverse Sponsoren haben sich dafür eingesetzt, dass Jedermann sich kostenlos so viele SSL Zertifikate ausstellen kann wie er möchte. Das bedeutet, dass sich jeder ein SSL Zertifikat ausstellen lassen kann. Weil das möglich ist, greifen auch die ganzen SEO’s so hart mit den Webseiten durch, die immer noch kein SSL Zertifikat besitzen.
Let’s encrypt Zertifikat generieren und implementieren
Die Installation und Integration von einem Let’s Encrypt Zertifikat ist sehr einfach. Aktuell gibt es jedoch einen Bug im Script. Daher müssen wir vorher eine Datei bearbeiten und danach kann es auch sofort losgehen.
PIP Bug beheben
Ich habe versucht einen SSL Zertifikat zu generieren und mir wurde die folgende Fehlermeldung angezeigt:
Certbot has problem setting up the virtual environment.
Dieses Problem könnt ihr ganz einfach beheben, indem ihr die pip Konfiguration bearbeitet. Dazu verbinden wir uns per SSH (MobaXterm) mit dem Raspberry Pi und geben folgendes in die Konsole ein:
sudo nano /etc/pip.conf
In dieser Datei kommentieren wir die extra-index-url aus. Das sieht dann so aus
[global]
extra-index-url=https://www.piwheels.org/simple
[global]
#extra-index-url=https://www.piwheels.org/simple
Sobald wir das gemacht haben, können wir die Datei schließen (Strg + X) und unsere Änderung bestätigen.
Zertifikat generieren und implementieren
Wir führen jetzt mehrere Befehle hintereinander aus, damit das schneller geht. Ich erkläre euch eben wofür diese Befehle stehen und was ihr an diesen Befehlen ändern müsst.
git clone https://github.com/letsencrypt/letsencrypt && cd letsencrypt && ./letsencrypt-auto -d EUREDOMAIN --redirect -m EUREEMAILADRESSE
- git clone…
Lädt die letzte Version von Let’s Encrypt auf euren Raspberry Pi runter - cd letsencrypt
Geht in den Ordner letsencrypt - ./letsencrypt-auto
Dieser Befehl führt den Let’s Encrypt Generator aus und hat einige Parameter. Diese werden wir uns einmal genauer anschauen.
-d gibt an, dass ihr eine Domain nennen werdet. Das EUREDOMAIN könnt ihr mit eurer Domain ersetzen.
Mit –redirect wird Let’s encrypt automatisch eine Umleitung von http auf https einstellen. Das bedeutet, dass jeder der auf eure Webseite mit http geht, automatisch auf https umgeleitet wird.
-m ist der Mail Parameter. Das EUREEMAILADRESSE ersetzt ihr durch eure E-Mail Adresse und danach könnt ihr den Befehl abschicken.
Ich habe das Video etwas vorgespult und deswegen geht sieht das so schnell aus. In wirklichkeit dauert das etwas länger. Also bitte wartet einfach, bis die Installation abgeschlossen ist. Sobald es abgeschlossen ist, könnt ihr euren Raspberry Pi https erreichen.
Wir haben jetzt gelernt, was SSL ist und wie wir beliebig viele SSL Zertifikate für unsere eigenen Domains erstellen können. Eigentlich wollte ich im nächsten Beitrag schon erklären, wie man den Blog aufsetzt, musste aber feststellen, dass wir php und nginx vorkonfigurierten müssen. Deswegen werden wir im nächsten Beitrag sehen, was für Konfigurationen nötig sind und wieso diese nötig sind.