我正在尝试 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
有人知道避免这种情况的方法吗?我想说如果有这样的方法,它会在文档中,但是在看到如何使用空条件块绑定到其他套接字后,我不会感到惊讶,如果有其他一些“神奇”和未记录的方法来实现我想要的。
我尝试了多种组合,将设置server.bind
为[::]
或0.0.0.0
,将条件设置为[::]:443
,0.0.0.0:443
或者简单地:443
,但我总是最终缺少一个 HTTPS 套接字,根据组合的不同,要么通过 IPv4 要么通过 IPv6(无法发布确切的结果,我没有跟踪它们并且重新进行测试非常烦人)。
答案1
您可以使用变量并包含文件中的配置,请参阅核心模块的配置文件语法我们可以在这里使用后者:
$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"