Um proxy reverso pode usar SNI com passagem SSL?

14

Eu preciso atender vários aplicativos por meio de https usando um endereço IP externo.

Os certificados ssl não devem ser gerenciados no proxy reverso. Eles estão instalados nos servidores de aplicativos.

Um proxy reverso pode ser configurado para usar o SNI e passar o SSL para a terminação no nó de extremidade?

Isso é possível usando algo como o Nginx ou o Apache? Como é a configuração?

    
por user319862 01.09.2014 / 01:10

2 respostas

13

Isso é possível com o Haproxy. Você pode configurar um proxy TCP e extrair o SNI e fazer o roteamento baseado no SNI. Aqui está um exemplo:

backend be.app1
    mode tcp
    no option checkcache
    no option httpclose
    tcp-request inspect-delay 5s
    tcp-request content accept if { req.ssl_hello_type 1 }
    tcp-request content reject
    use-server server1 if { req.ssl_sni -m beg app1. }
    server server1 server1:8443 check id 1 weight 0

É essencial atrasar o pedido até que você receba o SSL hello, caso contrário, o haproxy tentará fazer uma conexão antes de receber o cabeçalho SNI.

Estou usando servidores com peso 0 porque, na minha configuração atual, só tenho um servidor em execução para cada SNI e não quero que eles recebam solicitações aleatórias. Provavelmente você pode encontrar maneiras melhores de jogar com isso.

Espero que isso ajude.

    
por 01.09.2014 / 01:14
5

Você pode usar o sniproxy: link

Uma configuração de exemplo:

listener 0.0.0.0:443 {
    protocol tls
    table TableHTTPS
    fallback 127.0.0.1:8443
}

listener 0.0.0.0:80 {
    protocol http
    table TableHTTP
    fallback 127.0.0.1:8080
}

table TableHTTPS {
    domain1.com backend1:443
    domain2.org backend2:443
}

table TableHTTP {
    domain1.com backend1:80
    domain2.org backend2:80
}
    
por 06.12.2015 / 15:20