In der Standardkonfiguration werden die Administrationsoberfläche Foris und LuCI des Turris Omnia unverschlüsselt per HTTP angeboten. Für einen sicheren Zugriff bei der Administration sollte HTTPS aktiviert werden, damit Foris und LuCI per SSL/TLS abgerufen werden.

1| SSL/TLS aktivieren

Anmerkung: Im Folgenden wird davon ausgegangen, dass für die SSL/TLS-Verbindung keine selbstsignierten Zertifikate, sondern Zertifikate einer privaten CA verwendet werden (siehe auch Artikel ‘Private CA erstellen’).

Zunächst muss SSL/TLS in der lighttpd-Konfiguration aktiviert werden. Dies passiert am besten in der Datei /etc/lighttpd/conf.d/ssl-enable.conf:

Mit dieser Konfiguration werden gleichzeitig mehrere SSL-Einstellungen für den IPv4 und IPv6-Listener vorgenommen:

  1. Die SSL-Engine wird aktiviert.
  2. Es werden die Pfade sosohl zum Server-Zertifikate (inkl. Schlüssel) und zu den CA-Zertifikaten angegeben (s.u.)
  3. Die Unterstützung von veralteten SSL-Versionen wird deaktiviert
  4. Die Cipher-Liste wird eingeschränkt gemäß den Empfehlungen von bettercrypto.org
  5. Die Reihenfolge in der Cipher-Liste wird berücksichtigt
  6. Es wird ein HSTS-Header gesetzt

Damit sollte eine halbwegs sichere SSL-Konfiguration umgesetzt sein.

2| Zertifikate und Schlüssel erzeugen

Wird eine private CA mit XCA verwaltet (siehe Artikel ‘Private CA erstellen’), kann sich wie im Abschnitt ‘4| Server-Zertifikat erstellen’ beschrieben ein Server-Zertifikat erstellen. Dazu wird zunächst der private Schlüssel aus XCA im PEM-Format in die Zwischenablage kopiert und die Datei /etc/lighttpd/server.pem eingefügt (siehe Zeilen 4 und 17 in /etc/lighttpd/conf.d/ssl-enable.conf). Am Ende der gleichen Datei muss auch noch das Server-Zertifikat eingefügt werden.  Die folgenden Bilder zeigen den Export-Vorgang und den Aufbau der Datei:

Für die Datei mit dem Schlüssel sollten die Berechtigungen möglichst restriktiv vergeben werden, damit der private Schlüssel möglichst von niemanden gelesen werden kann:

Danach müssen auch noch die Zertifikate der CAs exportiert werden. Bei mir sind das die Zertifikate der Zwischen-CA und der Root CA. Diese müssen in die  Datei /etc/ca.pem eingetragen werden, wobei das Zertifikat der Zwischen-CA am Anfang der Datei eingefügt wird und das Zertifikat der Root-CA an das Ende der Datei kommt.

3| Weiterleitung von HTTP auf HTTPS einrichten

Da es gelegentlich vorkommt, dass man das https:// vergisst wird zusätzlich auch eine Weiterleitung von HTTP auf HTTPS einrichten. Dazu muss zunächst lighttpd-Modul mod_redirect  installiert werden:

Anschließend wird die Konfiguration in der Datei /etc/lighttpd/lighttpd.conf angepasst:

Das Modul mod_redirect wird bei der Installation (s.o.) automatisch aktiviert. Daher muss es in der Konfiguration nicht explizit angegeben werden.

Jetzt kann der Server neu gestartet werden:

Wenn alles gut läuft ist anschließend ein lighttpd-Listener sowohl für IPv4 als auch für IPv6 auf Port 80 und 443 gestartet:

4| SSL/TLS Verbindung überprüfen

Nach den Änderungen sollte im Browser bei der Verbindung ein grünes Schloss angezeigt werden (siehe Screenshot).

Wer ganz sicher gehen will kann abschließend mit nmap überprüfen welche Cipher-Suiten unterstützt werden: