Dual Stack Lighttpd ohne Wiederholung der SSL-Konfiguration

Dual Stack Lighttpd ohne Wiederholung der SSL-Konfiguration

Ich probiere Lighttpd aus und bin auf ein kleines, aber sehr ärgerliches Problem gestoßen; die IPv6-Konfiguration ist ein totales Durcheinander und erfordert, dass Sie Ihre SSL-Einstellungen zweimal duplizieren;überzeugen Sie sich selbst:

# listen to ipv4
server.bind = "0.0.0.0" 
server.port = "80" 

# listen to ipv6
$SERVER["socket"] == "[::]:80" {  }

# if you need ssl
$SERVER["socket"] == "0.0.0.0:443" { <here your ssl options> }
$SERVER["socket"] == "[::]:443" { <here your ssl options again> } // sadness

Kennt jemand eine Möglichkeit, das zu vermeiden? Ich würde sagen, wenn es eine solche Möglichkeit gäbe, stünde sie in der Dokumentation, aber nachdem ich gesehen habe, wie leere bedingte Blöcke zum Binden an zusätzliche Sockets verwendet werden können, würde es mich nicht überraschen, wenn es eine andere „magische“ und nicht dokumentierte Methode gäbe, um das zu erreichen, was ich will.

Ich habe mehrere Einstellungskombinationen server.bindauf [::]oder ausprobiert 0.0.0.0, die Bedingungen auf oder einfach gesetzt [::]:443, 0.0.0.0:443aber :443am Ende fehlte immer einer der HTTPS-Sockets, entweder über IPv4 oder IPv6, je nach Kombination (ich kann die genauen Ergebnisse nicht veröffentlichen, ich habe sie nicht protokolliert, und das erneute Durchführen der Tests ist ziemlich lästig).

Antwort1

Sie können Variablen verwenden und Konfigurationen aus Dateien einbinden, sieheKonfigurationsdateisyntax für das Kernmodul. Letzteres können wir hier verwenden:

$SERVER["socket"] == "0.0.0.0:443" { include "ssl.conf" }
$SERVER["socket"] == "[::]:443" { include "ssl.conf" }

und führen Sie dann die Konfiguration in ssl.conf:

ssl.engine  = "enable"
ssl.use-sslv2 = "disable"
ssl.use-sslv3 = "disable"
ssl.pemfile = "/etc/ssl/private/example.pem" 
ssl.ca-file = "/etc/ssl/certs/example.crt" 

verwandte Informationen