Im Manual Mode des Let’s Encrypt Referenzclients muss jede Domain über eine individuelle Datei im Unterverzeichnis /.well-known/acme-challenge/ derselben Domain bestätigt werden. Bei vielen Domains bremst das Wechseln zwischen den Verzeichnissen und das erstellen der notwendigen Verzeichnisstruktur den Arbeitsablauf. Damit die Domains schneller bestätigt werden können, sammle ich alle ACME Responses in einem gemeinsamen Verzeichnis /var/www/acme-challenges/. Egal, welche Domain gerade bestätigt werden soll: Die Datei zur Bestätigung wird hier abgelegt und steht dennoch unter der gewohnten URL bereit. Und so geht’s:

Weiterlesen

In mindestens zwei Anwendungsfällen ist die geringe Laufzeit von Let’s Encrypt Zertifikaten lästig: Bei der Nutzung von HPKP (Public Key Pinning) und DANE. Beide Verfahren sollen HTTPS-Verbindungen zusätzlich absichern, indem genau spezifiziert wird, welche TLS-Zertifikate für eine Domain gültig sein sollen. Da mindestens alle 90 Tage ein anderes Let’s Encrypt -Zertifikat eingerichtet werden muss, müssen in diesem Zyklus auch die HPKP- und DANE-Einstellungen mehr oder weniger aufwendig aktualisiert werden.

Der Aufwand lässt sich jedoch mit einem Trick reduzieren: Da beide Verfahren auf der Untersuchung des Public Keys im öffentlichen Zertifikat beruhen, kann man dafür sorgen, dass sich dieser bei der Umstellung auf ein neues Zertifikat nichts ändert. Man verwendet daher bei der Beantragung eines neuen LE-Zertifikats also keinen neuen Private Key, sondern einen alten. (Der Public Key basiert auf dem Private Key). Um einen alten Key nutzen zu können, muss der Referenzclient von Let’s Encrypt im Zusammenspiel mit einem eigenen, gleich bleibenden Private Key und einer eigenen Zertifikatsanfrage (CSR) verwendet werden.

Weiterlesen

Mein Harman Kardon HKTS 16 Hifi Lautsprecher-Set beinhaltet einen HTKS210 Subwoofer, mit dem ich in letzter Zeit etwas Ärger hatte. Wenn der Subwoofer über den LFE-Kanal angeschlossen wurde und der Input-Schalter von “normal” auf “LFE” umgelegt wurde, begann der Subwoofer leise zu pfeifen. Nicht sehr hoch, nicht sehr laut, aber so, dass man extrem genervt wurde, wenn gerade keine Musik lief und der Subwoofer eingeschaltet war.

Meine erste Lösung war, den Subwoofer zwar über LFE angeschlossen zu lassen, aber den Input-Schalter auf “normal” gestellt zu lassen. Das Signal kommt trotzdem an, wird aber durch einen zusätzlichen Tiefpass geleitet, der eigentlich für den normalen Input gedacht ist (der das volle Frequenzspektrum an den Subwoofer gibt). Das hat soweit funktioniert. Der Tiefpass hat das Pfeifen herausgefiltert.

Weiterlesen

Kaum einer meiner Server läuft nur mit einer einzigen Anwendung. Der Webserver, auf dem dieser Blog läuft, beherbergt nicht nur thomas-leister.de, sondern auch noch zwei andere Blogs und weitere PHP-basierte Webdienste, die ich zur Verfügung stelle. Aus Sicht eines Hackers ein lohnenswertes Ziel: Wird über eine PHP-Anwendung wie z.B. einen schlecht gepflegten Wordpress-Blog Zugriff auf das Dateisystem des Servers erlangt, kann der Hacker nicht nur die unsichere Webapplikation angreifen, sondern auch alle anderen Anwendungen, die unter dem PHP-User laufen. Aus diesem Grund ist es sinnvoll, die PHP-Anwendungen etwas voneinander abzuschotten, sodass ein Angreifer von der einen PHP-Anwendung aus keine andere PHP-Anwendung beeinträchtigen kann. Dies erreicht man, indem man für jede Anwendung einen eigenen User anlegt, der PHP ausführt. Die Verzeichnisrechte werden so gesetzt, dass nur der jeweils zugedachte PHP-User Zugriff auf die Anwendungsdateien hat und keine weiteren Änderungen im Dateisystem vornehmen kann.

Weiterlesen

Das Let’s Encrypt Projekt (hinter dem unter anderem Mozilla, Facebook und Cisco als Sponsoren stecken) ist gestern in den Public Beta Betrieb übergegangen. Von nun an können nach belieben kostenlose TLS (aka SSL)-Zertifikate für die eigenen Domains erstellt werden. Für den Erhalt eines Zertifikats sind nur wenige, einfache Schritte erforderlich, die ich im Folgenden erkläre:

Let’s Encrypt nutzt ein Protokoll namens “ACME” zur Kommunikation mit den CA-Servern. Ich habe den Referenz-ACME-Client “Certbot” von LE genutzt - um den soll es hier gehen. Außerdem wird der Client in dieser Anleitung direkt auf dem Zielserver ausgeführt - das ist die einfachere Methode. Wer den Client nicht auf dem Zielserver der Domains ausführen will oder kann (oder den laufenden Webserver-Betrieb nicht unterbrechen will), kann alternativ den “Manual Mode” verwenden (siehe Dokumentation unter: https://certbot.eff.org/docs/)

Weiterlesen