Benutzer-Werkzeuge

Webseiten-Werkzeuge


raspberrypi:raspberry_pi_ssl_zertifikat

Raspberry Pi - SSL Zertifikat via Certbot

Transport Layer Security (TLS), oder auch umgangssprachlich SSL genannt, ist ein Verschlüsselungsprotokoll für eine sichere Datenübertragung. Viele kennen mit Sicherheit das kleine grüne Schloss in der Browserzeile, welches die Verwendung einer sicheren Verbindung anzeigt. Eine Webseite mit solch einer Verbindung erlaubt es den Benutzern sicher Passwörter oder andere sensible Daten an den Server zu übermitteln. Zudem weckt es natürlich auch das Vertrauen der Internetnutzer. Mittlerweile gilt schon die Devise, jeder der eine Webseite ernsthaft betreiben möchte, sollte ein SSL Zertifikat haben. Ob das auch wirklich Sinn bei Webseiten macht, welche gar keine Passwörter oder sonstige sensible Daten abspeichern/transferieren, lassen wir mal dahin gestellt.

Um ein SSL Zertifikat zu bekommen gibt es mehrere Möglichkeiten. Etliche Anbiteter wie Thawte, RapidSSL, GEO Trust, GlobeSSL, Comodo oder VeriSign stellen gegen eine nicht geringe Gebühr ein SSL Zertifikat aus.

Let’s Encrypt verfolgt den Ansatz kostenlose X.509 Zertifkate für jedermann zugänglich zu machen, um das Internet so ein Stück sicherer zu machen. Genau solch ein Zertifikat möchten wir nun erstellen und für unseren Webserver zur Verfügung stellen.

Vorbereitung

Damit du ein SSL-Zertifikat erstellen kannst, muss bereits der Lighttpd (Webserver) installiert und bis zum Punkt SSL Zertifikat erstellen eingerichtet sein. Zudem wird, sollte sich die Webseite in einem Unterordner befinden noch ein eingerichteter VHost benötigt.

Zuerst einmal installierst du mit dem nachfolgenden Befehl certbot, womit das SSL-Zertifikat generiert wird:

sudo apt-get install certbot

Es ist wichtig über eine feste Domain bzw. DynDNS zu verfügen und eine statische IP- Adresse innerhalb des eigenen Netzwerkes dem Pi zugewiesen zu haben. Bei DynDNS kann es aufgrund der Limitierung von Zertifikaten zu Problemen kommen. Deshalb macht hier eine eigene Domain mehr Sinn.

Das SSL Zertifikat generieren

Die Generierung des Zertifikats ist an sich recht einfach und wird mit dem folgendem Befehl erstellt:

Wenn du in /var/www/html/ einen Unterordner für deine Webseite erstellt hast, dann musst du einen VHost anlegen oder in der Konfiguration des Webservers den Standardpfad des Webservers anpassen, damit das Skript über die Domain auf dem Webserver den Ordner „betreten“ kann. Wie die Einrichtung eines VHost funktioniert, erfährst du im Artikel Webserver einrichten.

sudo certbot certonly --webroot -w /var/www/html/ -d www.domain.de -d domain.de

Gegebenenfalls ist der Link /var/www/html/ auf die eigene Bedürfnisse anzupassen (Siehe Hinweisbox).

Während der Generierung muss die E-Mail Adresse hinterlegt werden und die Nutzungsbedingungen akzeptiert werden.

Im Verzeichnis /etc/letsencrypt/live/domain/ befinden sich nun 4 Dateien. Das öffentliche sowie das Intermediate Zertifikat, beides zusammen und der Schlüssel des Zertifikats.

Zertifikate automatisch erneuern

Zertifikate die von Let’s Encrypt ausgestellt werden haben eine Gültigkeit von 90 Tagen, danach müssen Sie erneuert werden.

Um Sie zu erneuern kann folgender Befehl benutzt werden:

sudo certbot renew --dry-run

Um den Vorgang zu automatisieren, legst du einfach einen Cronjob an, welcher einmal im Monat die Zertifikate erneuert. So kannst du garantieren, dass immer ein funktionierende Zertifikat vorhanden ist.

Mit dem Befehl

sudo crontab -e

wird der Crontab des User Root geöffnet. Das ist deshalb wichtig, da dass Script mit Root-Rechten ausgeführt werden muss.

Dort wird folgende Zeile eingefügt:

0 6 28 * * sudo certbot renew --dry-run "systemctl reload lighttpd" > /home/user/KeyLog

Das Zertifikat wird dann an jedem 28. des Monats morgens um 6 Uhr erneuert und der Webserver anschießend neu gestartet. „lighttpd“ muss dabei durch den jeweiligen Webserver ersetzt werden. Das Resultat davon wird in der Datei KeyLog im Home-Ordner eines beliebigen Users gespeichert.

Schlusswort

Im Artikel Webserver einrichten erfährst du, wie du das erstellte Zertifikat nun in den Webserver einbinden kannst.

raspberrypi/raspberry_pi_ssl_zertifikat.txt · Zuletzt geändert: 20/03/2019 49:00 von kohtachan