Zum Inhalt springen

Pihole mit Lighttpd Server, SSL – HTTPS fähig machen

Stell dir vor, du könntest dein Heimnetzwerk sicherer machen, indem du HTTPS anstelle von HTTP verwendest, um deine Daten vor neugierigen Blicken zu schützen. Mit einem selbst signierten SSL-Zertifikat und Pihole, ist genau das möglich. In dieser Anleitung zeige ich dir, wie du Schritt für Schritt dein eigenes SSL-Zertifikat in Pihole integrierst.

Was wird für Pihole mit SSL-Zertifikat benötigt?

Vorbereitungen auf der Pihole Lighttpd Installation

Du musst zuerst die SSL Unterstützung aktivieren, dazu erstellst du eine external.conf mit folgendem Befehl:

nano /etc/lighttpd/conf-available/external.conf

Der Inhalt der external Konfigurationsdatei sieht bei mir so aus:

$SERVER["socket"] == ":443" {
  ssl.engine = "enable" 
  ssl.pemfile = "/etc/ssl/private/pihole.fritz.box.combined.pem"
}

Du musst natürlich dein Zertifikat an diese Stelle kopieren /etc/ssl/private/. Beachte, dass es sich um eine Zusammengesetzte (combined) Datei handeln muss, diese enthält das Zertifikat und den privaten Schlüssel. Wie das funktioniert, wird auch in meinem Artikel zu SSL-Zertifikaten beschrieben.

Diese External-Datei wird standardmäßig von der Hauptkonfiguration von Lighttpd geladen, das hat den Vorteil, dass bei Updates, bei der die Hauptkonfiguration unter Umständen überschrieben wird, deine Konfigurationen erhalten bleiben.
Jetzt muss nur noch ein symbolischer Link erstellt werden, denn Lighttpd sucht im Ordner /etc/lighttpd/conf-enabled nach aktiven Konfigurationen und in diesem Ordner sind aber nur Links zu den eigentlichen Konfigurationen vorhanden.

sudo ln -s /etc/lighttpd/conf-available/external.conf /etc/lighttpd/conf-enabled/external.conf

Überprüfen der Konfiguration

Die erstellte Konfiguration kannst du nun mit folgendem Befehl überprüfen:

lighttpd -t -f /etc/lighttpd/lighttpd.conf

Wenn so etwas wie das folgende angezeigt wird, fehlt noch ein Paket, denn in neueren Versionen ist die SSL Unterstützung mit OpenSSL nicht mehr Teil der Lighttpd Standardinstallation.

2024-04-29 19:03:20: (configfile.c.279) Warning: please add "mod_openssl" to server.modules list in lighttpd.conf. A future release of lighttpd 1.4.x *will not* automatically load mod_openssl and lighttpd *will not* use SSL/TLS where your lighttpd.conf contains ssl.* directives Syntax OK

Das stellt aber kein größeres Problem dar, wir installieren die mod_openssl und tragen diese in die lighttpd.conf ein. Wie folgend angegeben.
Die Installation geht mit dem folgenden Befehl:

sudo apt-get install lighttpd-mod-openssl

Jetzt muss noch die Lighttpd Konfiguration erweitert werden:

nano /etc/lighttpd/lighttpd.conf

Die Server Module werden ganz am Anfang geladen und sollen auch dort hin. Ich hoffe nur, dass bei Updates dieser Bereich nicht überschrieben wird. Das habe ich noch nicht getestet. Der neue Eintrag ist mit „Hinzugefügt“ gekennzeichnet. Am Rest der Datei nichts verändern.

„server.modules = (
	"mod_openssl",  # Hinzugefügt
	"mod_indexfile",
	"mod_access",
	"mod_alias",
 	"mod_redirect",
)

Nach dem Speichern muss der Lighttpd Server neu gestartet werden:

sudo service lighttpd restart

Pihole ist nun über HTTPS ohne Warnung erreichbar

Hast du nach meiner Anleitung dein SSL-Zertifikat erstellt und das Root-Zertifikat auf deinem Client-Rechner, mit dem du Pihole aufrufst, importiert, ist Pihole auch über die IP-Adresse mit HTTPS erreichbar. Keine Warnmeldung mehr!

Pihole mit SSL-Zertifikat HTTPS fähig

Ich hoffe, der Artikel hilft dem einen oder anderen, speziell die fehlende Information das ein OpenSSL Modul fehlt, war bei mir lange der Grund, dass es nicht lief.
Danke für das Lesen, hinterlasse doch ein Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert