Posso passar o tráfego HTTPS de uma porta para outra?

3

Estou fazendo um proxy_pass em na porta 80 para 8000 no meu servidor remoto e, em seguida, uma porta para a frente de 8000 para 80 do remoto para o meu localhost. Isso funciona muito bem, mas eu também gostaria de fazer isso com mas Parece que as precisam de um certificado válido para transmitir o tráfego.

Existe uma maneira do meu servidor remoto simplesmente encaminhar o tráfego da porta 443 para a 8443 (e então eu irei encaminhar o 8443 remoto para o local 443). Em seguida, termine as na minha máquina de desenvolvimento, em vez de precisar fazer isso servidor remoto?

Meu controle remoto é executado e meu localhost é executado .

    
por Kit Sunde 23.06.2012 / 20:51

4 respostas

7

Embora o nginx provavelmente tenha um módulo de terceiros para lidar com conexões TCP brutas, tenho certeza de que, por padrão, tudo tem que ser HTTPS ou HTTP terminado. Eu acho que na sua situação eu faria o encaminhamento de porta no nível da rede:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8443

    
por 23.06.2012 / 22:41
4

Você pode deixar o nginx manipular o SSL e encaminhar para a porta 8000 no servidor de back-end. O meio nginx é o enlace SSL e não há SSL entre o nginx e o backend.

    
por 23.06.2012 / 22:18
1

Provavelmente, a melhor opção é fazer como diz @ cperrin88. Mas se você realmente não quiser descriptografar https em seu nginx, você poderia simplesmente encaminhar isso como tráfego TCP e depois descriptografá-lo mais tarde no backend.

O Nginx não suporta o proxy TCP por padrão, mas você pode usar este módulo nginx_tcp_proxy_module

    
por 23.06.2012 / 22:36
1

Se você simplesmente deseja passar o tráfego TCP, o HAProxy é um bom candidato. Fácil de instalar e configuração simples. O HAProxy pode balancear a carga TCP, bem como o tráfego HTTP.

Esta inscrição para HTTP o tráfego no Ubuntu deve começar. Altere o modo para TCP para balanceamento de carga TCP bruto.

    
por 14.07.2012 / 17:30