Dual Stack Lighttpd sem repetir a configuração SSL

2

Estou experimentando o Lighttpd e me deparei com um problema pequeno, mas muito chato; a configuração do IPv6 é uma bagunça total e exige que você duplique suas configurações de SSL duas vezes; veja você mesmo :

# 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

Alguém sabe uma maneira de evitar isso? Eu diria que se houvesse uma forma como seria na documentação, mas depois de ver como blocos condicionais vazios podem ser usados para ligar a soquetes adicionais eu não ficaria surpreso se houvesse algum outro método "mágico" e não documentado para alcançar o que eu quero.

Eu tentei várias combinações de configuração de server.bind para [::] ou 0.0.0.0 , definindo as condicionais como [::]:443 , 0.0.0.0:443 ou simplesmente :443 , mas sempre acabei com uma das Soquetes HTTPS ausentes, seja por IPv4 ou IPv6, dependendo da combinação (não é possível postar os resultados exatos, não os acompanhei e refazer os testes é bastante irritante).

    
por Michael Hampton 23.02.2015 / 10:31

1 resposta

6

Você pode usar variáveis e incluir configurações de arquivos, veja Sintaxe do arquivo de configuração para o módulo principal . Podemos usar o último aqui:

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

e, em seguida, faça a configuração em 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" 
    
por 23.02.2015 / 11:30

Tags