Load Balancer, EC2 - Conexão HTTPS

1

Ok, essa pode ser uma pergunta de novato, mas aqui está meu cenário.

  1. Eu tenho um balanceador de carga gerenciando uma única instância do EC2 no momento.
  2. Eu tenho um aplicativo em execução nessa instância do EC2.

O que eu gosto de alcançar: 1. Uma conexão completa com HTTPS para o meu aplicativo no EC2 que atualmente se liga ao 8080.

Qual é o caminho certo para alcançá-lo? 1. Devo apenas fazer o upload de um certificado SSL para o balanceador de carga e forçar uma conexão SSL entre apenas o cliente e o balanceador de carga? Devo deixar o tráfego entre load balancer & EC2 ser protegido pelo grupo de segurança?

OR -

  1. Preciso configurar meu servidor de aplicativos web tomcat com outro certificado e configurar seu conector https 443 com caminho de keystore e redirecionar conexões HTTP para a porta 443?

OR -

Existe algo que estou perdendo Obrigado,

    
por Ace 31.01.2015 / 02:11

3 respostas

3

A configuração mais simples para as suas necessidades pode ser:

  1. Defina seu tomcat para escutar na porta 8080 como HTTP
  2. Envie seu certificado SSL para o ELB e defina seu ELB para encerrar o SSL.
  3. Encaminhe a porta 443 no ELB para a porta 8080 em sua instância.
  4. Configure seu grupo de segurança do EC2 para aceitar apenas conexões do grupo de segurança do ELB na porta 8080. Dessa forma, ninguém pode contornar seu ELB.

Isso descarregará a criptografia da sua instância do EC2 para o ELB.

Opcional extra:

  1. Também encaminhar a porta HTTP 80 no ELB para outra porta no tomcat e redirecionar HTTP para HTTPS.

Dessa forma, se o seu cliente se conectar por HTTP, eles serão redirecionados para o HTTPS automaticamente.

    
por 31.01.2015 / 02:27
2

Normalmente, seu balanceador de carga lidará com as negociações das conexões https com seus clientes e, em seguida, ele se conectará ao (s) servidor (es) tomcat de origem para obter o conteúdo http (já que não há muita necessidade de criptografar esse salto curto, e presumivelmente você pode confiar na rede local). Você deve definir seu balanceador de carga para redirecionar qualquer solicitação HTTP recebida para https e você só precisará configurar o certificado https no balanceador de carga. Para os back ends do tomcat, você precisa ter certeza de que todos os links são relativos ou dizer ao cliente para ir para https.

Eu não tenho 100% de certeza se é isso que você queria, então me diga se há algo diferente que você queria saber.

    
por 31.01.2015 / 02:25
0

Acho que a resposta aceita não está correta. O upload do seu certificado SSL para o balanceador de carga e a solicitação de um canal HTTPS fará com que o balanceador de carga descriptografe o tráfego SSL e o transmita em descriptografado por trás do balanceador de carga. (O OP pediu SSL para o aplicativo).

De acordo com os documentos do ELB

"If you don't want the load balancer to handle the SSL termination (known as SSL offloading), you can use TCP for both the front-end and back-end connections, and deploy certificates on the registered instances handling requests."

Então, a coisa certa a fazer seria encaminhar TCP: 443 (no load balancer) - > TCP: 443 (na instância ou em alguma outra porta).

Se você deseja criptografia de ponta a ponta, instale as chaves SSL no servidor de aplicativos.

Isso também significa que o ELB não pode mexer com seus cabeçalhos HTTPS - o que acho necessário para conexões fixas. Para servidores de aplicativos sem estado, isso não é problema.

    
por 19.09.2017 / 00:20