Zertifikate mit Let's Encrypt
Dass man Webdienste heutzutage nur noch per https anspricht und damit verschlüsselt kommuniziert, ist hinlänglich bekannt. Um jedoch zu gewährleisten, dass man auch tatsächlich mit der richtigen Gegenstelle kommuniziert und die verschlüsselten Daten auch dort ankommen, wo sie sollen, gibt es digitale Zertifikate. In LogoDIDACT wird dafür Let’s Encrypt als Zertifizierungsstelle genutzt, die Ende 2015 in Betrieb gegangen ist und kostenlose X.509-Zertifikate für Transport Layer Security (TLS) anbietet. Dabei ersetzt ein automatisierter Prozess die bisher gängigen komplexen händischen Vorgänge bei der Erstellung, Validierung, Signierung, Einrichtung und Erneuerung von Zertifikaten für verschlüsselte Websites.
Let's Encrypt aktivieren
Für Let's Encrypt gibt es keinen separaten Container, da letztlich nur ein Zertifikat generiert und zentral bereitgestellt wird. Da der Puppeteer die zentrale Managementkomponente ist, wird Let's Encrypt in diesem Container konfiguriert.
Zunächst wechselt man in den Container puppeteer-g3 in das LogoDIDACT-Konfigurationsverzeichnis. Erstellen Sie darin die Datei puppeteer-g3.yaml
oder ergänzen Sie den nachfolgen Inhalt in die bestehende Datei.
root@puppeteer-g3:~/l/hiera/custom.d # vi puppeteer-g3.yaml
puppeteer-g3.yaml | |
---|---|
Im Anschluss die Anpassung wie gewohnt in GIT commiten.
Zertifikate verwalten
Im Zusammenhang mit der Installation der Pakete wird im puppeteer-g3 eine Skripting-Umgebung eingerichtet, die über den "Benutzer" sle gestartet wird.
Nach Eingabe des sle-Kommandos kann mit dem folgenden Befehl ein LE-Zertifikat für einen Webdienst beantragt werden:
le-acme@puppeteer-g3:~ $ issue webservice.schulkuerzel.logoip.de
Das schulkuerzel
ist hierbei der inviduell vergebene Name der Schule (Shortname), z.B. musterstadt-rs. Der vorangestellte webservice
ist die Bezeichnung für den freizuschaltenden Dienst, z.B. idp.
Somit ergibt sich aus den Beispielangaben der Befehl:
le-acme@puppeteer-g3:~ $ issue idp.musterstadt-rs.logoip.de
Info
Falls die Beantragung des Zertifikates fehlschlägt, müssen unter Umständen noch die Webports 80/HTTP und 443/HTTPS in der Shorewall des ldhost geöffnet werden.
Außerdem vergewissern, dass diese beiden genannten TCP-Ports am vorgeschalteten Internetrouter auf die Schnittstelle p_extern des LogoDIDACT Servers weitergeleitet werden!
Ausgestellte Zertifikate landen automatisch durch prun
in den Rev-Proxys rproxy-ext und rproxy-int im Verzeichnis /etc/ld.le/
. Der dort laufende Proxy-Dienst haproxy weißt diese SSL-Zertifikate anhand einer Mapping-Datei dem jeweiligen URL bzw. Dienst zu:
root@rproxy-int:~ # /etc/haproxy/map.d/crt-list
Eine Übersicht aller ausgestellten LE-Zertifikate erhält man mit:
le-acme@puppeteer-g3:~ $ acme.sh --list
Das Entfernen eines Zertfikates ist möglich per:
le-acme@puppeteer-g3:~ $ acme.sh --remove -d webservice.schulkuerzel.logoip.de
Warnung
Durch diesen Befehl wird lediglich das Zertifikat aus der Liste der bekannten Zertifikate entfernt, nicht jedoch die Zertifikatsdateien (config, keys, etc.) selbst. Diese müssen manuell gelöscht werden unter certs/webservice.schulkuerzel.logoip.de/*
Zertifikate aktualisieren
Ein Let's Encrypt Zertifikat hat eine Gültigkeitsdauer von 60 Tagen und muss deshalb regelmäßig erneuert werden. Das geschieht über einen entsprechenden Dienst acmesh.timer
automatisch.
Trotzdem ist es nicht ausgeschlossen, dass diverse Umstände den Automatismus zu Erneuerung der Zertifikate unterbrechen. Ist dies der Fall kann die Erneuerung manuell erfolgen.
le-acme@puppeteer-g3:~ $ acme.sh --renew -d webservice.schulkuerzel.logoip.de