Ipv6
雙棧 Lighttpd 無需重複 SSL 配置
我正在嘗試 Lighttpd,但偶然發現了一個小但非常煩人的問題;IPv6 配置一團糟,需要您將 SSL 設置複製兩次;親眼看看:
# 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
有誰知道避免這種情況的方法?我會說如果文件中有這樣的方法,但是在看到如何使用空條件塊來綁定到其他套接字之後,如果還有其他一些“神奇”且未記錄的方法,我不會感到驚訝達到我想要的。
我嘗試了設置為 or 的多種組合,
server.bind
將[::]
條件0.0.0.0
設置為or 或簡單地[::]:443
,但我總是最終缺少一個 HTTPS 套接字,無論是通過 IPv4 還是 IPv6,具體取決於組合(無法發布確切的結果,我沒有跟踪它們,重做測試很煩人)。0.0.0.0:443``:443
您可以使用變數並從文件中包含配置,請參閱核心模組的配置文件語法。我們可以在這裡使用後者:
$SERVER["socket"] == "0.0.0.0:443" { include "ssl.conf" } $SERVER["socket"] == "[::]:443" { include "ssl.conf" }
然後在中進行配置
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"