Como encaminhar solicitações https para outros hosts com base no nome do host

Como encaminhar solicitações https para outros hosts com base no nome do host

Minha situação:

Eu tenho três servidores Ubuntu, um roteador NAT e três nomes de domínio e três sites Apache. Os dois domínios Ipadress são o IP WAN do roteador NAT. Todo o tráfego https da Internet é encaminhado para o servidor um. Cada servidor possui seu próprio certificado para seu próprio site.

Alguém tenta se conectar:

Se o nome do host solicitado for o nome do host do site 1. O servidor 1 mostra o site 1. Se o nome do host solicitado for do site 2 ou 3. O servidor 1 encaminha a conexão para o servidor 2 ou 3. O servidor 2 ou 3 mostra o site 2 ou 3 .

Lembre-se de que o servidor 1 não possui as chaves do servidor 2 ou 3.

Eu tenho duas perguntas.

  1. Isso é possível sem erros como o man in the middle.
  2. Como editar a configuração do Apache para que isso funcione.

Pesquisar:

Pesquisei no Google como encaminhar solicitações https para outros hosts https. A maioria das respostas é que o servidor 1 possui todos os certificados e chaves públicas. e que você precisa criar outro certificado e chave para o servidor 2 ou 3. (No meu caso, um certificado autoassinado). Mas não quero que o servidor 1 tenha a chave privada do servidor 2 ou 3. Como o ip público do servidor 1, 2 ou 3 é o mesmo é possível que o servidor 1 não tenha as chaves privadas.

Também descobri como você pode ter vários hosts virtuais https em um servidor com certificados diferentes. Não porque cada servidor tem seu próprio site.

Alguém pode me ajudar?

Responder1

Isso pode ser conseguido usando o ApacheProxy reversorecurso. Na configuração do Apache do Servidor 1, você criaria VirtualHostdefinições usando o nome do host e as configurações SSL para os sites nos Servidores 2 e 3, ProxyPasssendo usadas para fazer proxy das conexões de volta para esses servidores por meio do Servidor 1.

Um método alternativo seria executar algo como NGINX na frente de todos os três servidores, fazer com que seu tráfego HTTP/HTTPS fosse NAT para NGINX e configurá-lo para fazer terminação SSL eproxy reversopara todos os três servidores.

informação relacionada