Como configurar meu Elastic Load Balancer para balancear o tráfego SSL?

4

Estou totalmente perdido, então peço desculpas se não estou fazendo sentido.

Eu preciso criar um balanceador de carga no EC2 para nossos servidores de aplicativos. Estou tentando fazer o ELB equilibrar o tráfego sobre SSL (8443). No entanto, ele está me pedindo um certificado SSL. Parece estar me pedindo uma chave pública e privada (pem codificado).

Os servidores por trás do ELB têm um arquivo keystore, que nossos desenvolvedores criaram usando o programa keytool do Oracle Java. O arquivo criado é binário. Parece que o ELB está esperando uma chave formatada em texto, pem.

  1. Por que o ELB exige que eu insira um certificado? Não é possível o ELB apenas encaminhar o tráfego SSL de um lado para o outro e deixar os servidores lidarem com SSL?
  2. Os arquivos de certificados / keystore estão relacionados e as chaves devem corresponder no ELB e nos servidores? Os documentos da AWS disseram para criar uma chave privada e um certificado usando o openssl. Posso apenas executar de forma independente o openssl para criar um certificado SSL para o balanceador de carga e deixar o arquivo de armazenamento de chaves somente nos servidores?

Agradecemos antecipadamente por sua ajuda.

    
por Classified 09.02.2013 / 06:07

3 respostas

4

A vantagem de fazer terminação SSL em seu balanceador de carga é que você libera seus nós de backend de executar criptografia / descriptografia SSL.

Assim, basta implantar sua chave privada SSL e certificado assinado no ELB. Isso cuidará da finalização do SSL e, em seguida, poderá proibir o tráfego não criptografado em suas instâncias de back-end. Se você deseja que o tráfego entre o ELB e suas instâncias de back-end sejam criptografados, tudo bem, mas ainda será necessário que o ELB tenha sua chave privada e certificado assinado.

No que diz respeito a obter seus certificados e chaves do keystore java, isso é certamente possível. Este Q & A no Stackoverflow tem os detalhes.

    
por 09.02.2013 / 06:14
22

O ELB pode ser usado de duas maneiras:

  1. terminação SSL no ELB.

    Neste modo, você dará ao ELB o certificado e a chave. Descriptografará a solicitação e a transmitirá para seus servidores sem criptografia. O benefício disso é que você pode reduzir a carga da CPU de seus servidores.

  2. O ELB apenas age como um repasse.

    O ELB pode atuar como um pasto burro. Não vai precisar do certificado ou chave. Para configurá-lo dessa maneira, em vez de usar a opção HTTPS, defina-a como porta TCP.

por 09.02.2013 / 08:30
4
  1. O ELB é o ponto final no que diz respeito ao cliente. Ele adiciona cabeçalhos de metadados, etc. No momento, o ELB não pode exibir SSL sem um certificado.

  2. O ELB deve ter o certificado que você quer que esteja voltado para fora, mas os certificados nas instâncias reais não precisam corresponder. Eles podem ser auto-assinados. Você nem precisa instalar certificados em suas instâncias, mas os dados vão viajar na infraestrutura clara da AWS entre as instâncias e o ELB. Você pode criar o certificado da maneira que quiser, desde que seja válido.

por 09.02.2013 / 07:40