como forçar o navegador da web envia solicitação HTTP CONNECT

2

quando usamos o proxy HTTP, podemos usá-lo para visitar websites com https. No proxy HTTP comum, o navegador envia HTTP GET em texto não criptografado. O proxy HTTP analisa a solicitação HTTP GET HOST line para saber qual site o navegador deseja visitar.

já que em https comuns, o navegador envia HTTP GET em texto cifrado, não há como o proxy saber qual destino o navegador deseja visitar. Portanto, quando o proxy HTTP é definido nos navegadores, o navegador envia uma solicitação HTTP CONNECT que mostra o HOST em texto não criptografado.

agora eu tenho um proxy, por trás dele estão vários servidores web ocultos. Eles estão todos com IPs diferentes. E apenas o proxy conhece seus IPs. cada um deles tem um nome de domínio. Como, myproxy.com, server1.myproxy.com, server2.myproxy.com ... mas quando um navegador faz uma consulta DNS para esses nomes de domínio, o IP retornado é o IP do proxy.

Quando um navegador deseja visitar server1.myproxy.com em http, ele faz uma consulta DNS e obtém o IP do proxy. Em seguida, ele se conecta ao proxy por meio do TCP e envia uma solicitação HTTP GET. O proxy pode analisar a solicitação HTTP para saber qual servidor da Web o navegador deseja visitar.

mas se um navegador quiser visitar server1.myproxy.com em https, uma vez que o navegador não define o proxy como proxy padrão, ele não enviará a solicitação HTTP CONNECT. Então, parece-me que o proxy não terá meios de saber qual servidor da Web o navegador deseja visitar.

Existe alguma maneira de o proxy saber qual servidor da Web o navegador deseja visitar? ou seja, como forçar o navegador envia solicitação HTTP CONNECT? obrigado!

    
por misteryes 31.05.2013 / 22:59

1 resposta

1

Não há como informar a um navegador que o servidor ao qual ele está se conectando é, na verdade, um proxy. O navegador usa apenas CONNECT quando sabe sobre o proxy (normalmente, por configuração local).

O que você precisa fazer é finalizar a conexão HTTPS no balanceador de carga e, em seguida, apenas o assunto HTTP (ou uma conexão HTTPS diferente) entre o balanceador de carga e o farm de servidores.

Para que isso funcione, o balanceador de carga precisa de um certificado com vários nomes de servidor (comumente conhecidos como Subject Alternate Names ; preferível) ou SSL / TLS server name indication (isso ainda não funciona confiável em todos os navegadores).

    
por 03.06.2013 / 21:09