bg-tutorials

So installieren Sie ein SSL-Zertifikat auf lighttpd

In diesem Tutorial lernen Sie, wie man ein SSL-Zertifikat auf Lighttpd installiert. Der Leitfaden behandelt die aktuelle Konfiguration (separates Zertifikat und privater Schlüssel mit dem mod_openssl-Modul), die veraltete kombinierte PEM-Methode für ältere Builds sowie einen schnellen Konfigurationstest vor dem Neustart.

Wir haben außerdem ein Video aufgenommen, das Sie durch den gesamten Prozess führt. Wenn Sie die Textversion bevorzugen, lesen Sie unten weiter.

CSR-Code auf Lighttpd erzeugen

Wir beginnen mit der Erstellung des CSR (Certificate Signing Request). Ein CSR ist ein Block codierten Textes, den Sie an eine Zertifizierungsstelle senden, um ein SSL-Zertifikat zu beantragen. Sie haben zwei Möglichkeiten:

Öffnen Sie die CSR-Datei mit einem beliebigen Texteditor und kopieren Sie deren Inhalt, einschließlich der Zeilen BEGIN CERTIFICATE REQUEST und END CERTIFICATE REQUEST, in das entsprechende Feld während des SSL-Bestellvorgangs. Reichen Sie den CSR bei der Zertifizierungsstelle ein und warten Sie auf die Validierung. Sobald die CA Ihr SSL-Zertifikat ausgestellt hat, fahren Sie mit der unten beschriebenen Installation fort.

SSL-Zertifikat auf Lighttpd installieren

Schritt 1: Zertifikatsdateien vorbereiten

Nach der Validierung sendet Ihnen die Zertifizierungsstelle die Zertifikatsdateien per E-Mail. Laden Sie das Archiv herunter und entpacken Sie es. Sie sollten folgende Dateien haben:

  • yourdomain.crt, Ihr primäres SSL-Zertifikat.
  • yourdomain.ca-bundle, die Zwischenzertifikate (das CA-Bundle).
  • yourdomain.key, der private Schlüssel, den Sie beim Erstellen des CSR generiert haben.

Lighttpd empfiehlt, dass die Datei, auf die ssl.pemfile verweist, die vollständige Zertifikatskette enthält: zuerst Ihr Zertifikat, gefolgt von den Zwischenzertifikaten. Erstellen Sie diese kombinierte Kettendatei und verschieben Sie sie zusammen mit dem privaten Schlüssel in ein Verzeichnis, das Lighttpd lesen kann (zum Beispiel /etc/lighttpd/ssl/):

cat yourdomain.crt yourdomain.ca-bundle > yourdomain.fullchain.pem
sudo mkdir -p /etc/lighttpd/ssl
sudo cp yourdomain.fullchain.pem yourdomain.key /etc/lighttpd/ssl/

Beschränken Sie den privaten Schlüssel so, dass nur root ihn lesen kann:

sudo chmod 600 /etc/lighttpd/ssl/yourdomain.key

Schritt 2: mod_openssl aktivieren

Seit Version 1.4.56 befindet sich die TLS-Unterstützung in Lighttpd in einem ladbaren Modul namens mod_openssl (es gibt auch andere Backends wie mod_mbedtls, mod_wolfssl, mod_gnutls und mod_nss). Laden Sie es in Ihrer Hauptkonfigurationsdatei vor dem SSL-Socket-Block:

server.modules += ( "mod_openssl" )

Hinweis: Bei Lighttpd 1.4.55 und früher war TLS fest einkompiliert und wurde nicht als Modul geladen, sodass Sie diese Zeile bei diesen Builds überspringen können. Prüfen Sie Ihre Version mit lighttpd -v.

Schritt 3: lighttpd.conf bearbeiten

Öffnen Sie die Hauptkonfigurationsdatei (der Pfad ist normalerweise /etc/lighttpd/lighttpd.conf) mit Ihrem bevorzugten Editor:

sudo nano /etc/lighttpd/lighttpd.conf

Fügen Sie einen Socket-Block für Port 443 hinzu. Bei aktuellem Lighttpd (1.4.56+) behalten Sie die Zertifikatskette und den privaten Schlüssel in separaten Dateien: Verweisen Sie mit ssl.pemfile auf die vollständige Kettendatei und mit ssl.privkey auf den Schlüssel. Dies ist das Format, in dem die meisten Zertifizierungsstellen ihre Dateien liefern, und es ist die von Lighttpd empfohlene Konfiguration.

$SERVER["socket"] == ":443" {
    ssl.engine  = "enable"
    ssl.pemfile = "/etc/lighttpd/ssl/yourdomain.fullchain.pem"
    ssl.privkey = "/etc/lighttpd/ssl/yourdomain.key"

    # Minimale TLS-Version (ssl-conf-cmd benötigt lighttpd 1.4.48+; TLS 1.2 ist ab 1.4.56+ bereits Standard)
    ssl.openssl.ssl-conf-cmd = ( "MinProtocol" => "TLSv1.2" )
}
  • ssl.engine aktiviert TLS für diesen Socket.
  • ssl.pemfile enthält Ihr Zertifikat, gefolgt von der Zwischenkette.
  • ssl.privkey enthält den privaten Schlüssel. Seit Version 1.4.53 ist dies erforderlich, wenn der Schlüssel nicht in der pemfile enthalten ist.

Um einfaches HTTP auf HTTPS umzuleiten, sodass Besucher immer die sichere Version erreichen, fügen Sie eine Weiterleitung für Port 80 hinzu (dies benötigt mod_redirect, das bei den meisten Distributionen standardmäßig geladen ist):

$SERVER["socket"] == ":80" {
    url.redirect = ( "^/(.*)" => "https://yourdomain.com/$1" )
}

Speichern und schließen Sie die Datei.

Veraltete Methode: kombinierte PEM und ssl.ca-file

Ältere Lighttpd-1.4.x-Builds (vor 1.4.53) verwendeten eine einzelne kombinierte PEM-Datei, die sowohl das Zertifikat als auch den privaten Schlüssel zusammengefügt enthielt, wobei die Zwischenkette separat über ssl.ca-file bereitgestellt wurde. Wenn Sie eines dieser älteren Systeme betreuen, erstellen Sie die kombinierte Datei folgendermaßen:

cat yourdomain.crt yourdomain.key > /etc/lighttpd/ssl/yourdomain.pem

Verweisen Sie dann im Socket-Block darauf:

$SERVER["socket"] == ":443" {
    ssl.engine  = "enable"
    ssl.pemfile = "/etc/lighttpd/ssl/yourdomain.pem"
    ssl.ca-file = "/etc/lighttpd/ssl/yourdomain.ca-bundle"
}

Bei aktuellem Lighttpd bevorzugen Sie die separate Form ssl.pemfile und ssl.privkey aus Schritt 3 und behalten die vollständige Kette in der pemfile. Die Direktive ssl.ca-file wurde in Version 1.4.60 in ssl.verifyclient.ca-file umbenannt, da ihr eigentlicher Zweck die Überprüfung von Client-Zertifikaten und nicht die Bereitstellung der Serverkette ist.

Schritt 4: Konfiguration testen

Überprüfen Sie immer die Syntax, bevor Sie neu starten, da ein Fehler den Start des Servers verhindern kann. Führen Sie aus:

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

Sie sollten eine Meldung sehen, dass die Syntax OK ist. Für eine tiefergehende Prüfung, die auch die Module lädt und initialisiert, verwenden Sie sudo lighttpd -tt -f /etc/lighttpd/lighttpd.conf. Beheben Sie alle gemeldeten Fehler, bevor Sie fortfahren.

Schritt 5: Lighttpd neu starten

Wenden Sie die Änderungen an. Bei einem modernen System mit systemd starten Sie den Dienst neu:

sudo systemctl restart lighttpd

Bei älteren Systemen, die SysV Init verwenden, nutzen Sie stattdessen das Init-Skript:

sudo /etc/init.d/lighttpd restart

Herzlichen Glückwunsch, Ihr SSL-Zertifikat ist nun auf Lighttpd installiert. Um das Ergebnis zu bestätigen und einen sofortigen Statusbericht zu erhalten, verwenden Sie unseren SSL Checker oder durchsuchen Sie unsere vollständige Sammlung an SSL-Tools. Für erweiterte Optionen lesen Sie die offizielle Lighttpd-SSL-Dokumentation.

Häufig gestellte Fragen

Verwendet Lighttpd eine kombinierte PEM-Datei oder separate Zertifikats- und Schlüsseldateien?

Aktuelles Lighttpd (1.4.56 und später) empfiehlt separate Dateien: das Zertifikat plus seine Zwischenkette in der Datei, die von ssl.pemfile benannt wird, und den privaten Schlüssel in ssl.privkey. Die ältere kombinierte PEM, die Zertifikat und Schlüssel in einer ssl.pemfile zusammenfügte, funktioniert weiterhin, aber die getrennte Form entspricht dem Format, in dem die meisten Zertifizierungsstellen Dateien liefern, und ist die dokumentierte Empfehlung.

Benötige ich für die Zwischenkette weiterhin ssl.ca-file?

Nein. Die aktuelle Empfehlung ist, die Zwischenzertifikate direkt in die Datei ssl.pemfile einzufügen, direkt nach Ihrem Zertifikat. Die Direktive ssl.ca-file war ein historischer Weg, die Kette zu vervollständigen, wenn die pemfile nur das Endzertifikat enthielt, und wurde in Version 1.4.60 in ssl.verifyclient.ca-file umbenannt, da ihre eigentliche Rolle die Überprüfung von Client-Zertifikaten ist.

Wie überprüfe ich die Konfiguration vor dem Neustart von Lighttpd?

Führen Sie sudo lighttpd -t -f /etc/lighttpd/lighttpd.conf aus, um die Syntax zu testen, oder sudo lighttpd -tt -f /etc/lighttpd/lighttpd.conf für einen tiefergehenden Test, der auch die Module lädt. Beheben Sie alle gemeldeten Fehler, bevor Sie neu starten, damit ein Tippfehler den Serverstart nicht verhindert.

Warum zeigt mein Browser bei Lighttpd eine unvollständige Zertifikatskette an?

Dies bedeutet in der Regel, dass die Zwischenzertifikate in Ihrer ssl.pemfile fehlen. Fügen Sie Ihr Zertifikat und das CA-Bundle in einer Datei zusammen, wobei das Zertifikat zuerst kommt, und verweisen Sie mit ssl.pemfile darauf. Testen Sie dann die Konfiguration und starten Sie neu. Sie können mit unserem SSL Checker bestätigen, dass die Kette vollständig ist.

Wie überprüfe ich, ob das SSL-Zertifikat auf Lighttpd installiert ist?

Verbinden Sie sich mit OpenSSL zu Ihrer Website und lesen Sie das ausgelieferte Zertifikat:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
Wenn das Zertifikat installiert ist, werden dessen Aussteller und Gültigkeitsdaten angezeigt. Sie können Ihre Website auch in einem Browser öffnen und das Schlosssymbol überprüfen.

Sparen Sie 10% auf SSL-Zertifikate, wenn Sie noch heute bestellen!

Schnelle Ausstellung, starke Verschlüsselung, 99,99% Browser-Vertrauen, engagierter Support und 25-tägige Geld-zurück-Garantie. Gutscheincode: SAVE10

A detailed image of a dragon in flight
Geschrieben von

Erfahrener Content-Autor, spezialisiert auf SSL-Zertifikate. Verwandeln Sie komplexe Cybersicherheitsthemen in klare, ansprechende Inhalte. Tragen Sie durch wirkungsvolle Narrative zur Verbesserung der digitalen Sicherheit bei.