Criar um listener HTTPS para seu Application Load Balancer - Elastic Load Balancing

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Criar um listener HTTPS para seu Application Load Balancer

Um listener é um processo que verifica se há solicitações de conexão. Você define um listener ao criar seu load balancer e você pode adicionar listeners ao seu load balancer a qualquer momento.

Você pode criar um listener HTTPS, que use conexões criptografadas (também conhecidas como SSL offload). Esse recurso permite criptografar tráfego entre o load balancer e os clientes que iniciam sessões SSL ou TLS.

Se você precisar passar tráfego criptografado para destinos sem que o balanceador de carga o descriptografe, você pode criar um Network Load Balancer ou Classic Load Balancer com um ouvinte TCP na porta 443. Com um ouvinte TCP, o balanceador de carga passa o tráfego criptografado para os destinos sem descriptografá-lo.

Os Application Load Balancers não são compatíveis com autenticação TLS mútua (mTLS). Para suporte a mTLS, crie um ouvinte TCP usando um Network Load Balancer ou um Classic Load Balancer e implemente mTLS no destino.

Os Application Load Balancers não são compatíveis com chaves ED25519.

As informações dessa página ajudam você a criar um listener HTTPS para o load balancer. Para adicionar um listener HTTPS ao seu load balancer, consulte Crie um ouvinte HTTP para seu Application Load Balancer.

Certificados SSL

Para usar um listener HTTPS, você deve implantar pelo menos um certificado de servidor SSL/TLS no load balancer. O load balancer usa um certificado de servidor para encerrar a conexão front-end e descriptografa solicitações dos clientes antes de enviá-las aos destinos.

O load balancer requer certificados X.509 (certificados de servidor SSL/TLS). Os certificados são uma forma digital de identificação emitida por uma autoridade certificadora (CA). Um certificado contém informações de identificação, período de validade, chave pública, número de série e a assinatura digital do emissor.

Quando você cria um certificado para uso com seu load balancer, é necessário especificar um nome de domínio.

Recomendamos que você crie certificados para o balanceador de carga usandoAWS Certificate Manager(CM). O ACM suporta certificados RSA com comprimentos de chave de 2048, 3072 e 4096 bits e todos os certificados ECDSA. O ACM se integra ao Elastic Load Balancing para que você possa implantar o certificado em seu balanceador de carga. Para obter mais informações, consulte o Guia do usuário do AWS Certificate Manager.

Como alternativa, você pode usar ferramentas SSL/TLS para criar uma solicitação de assinatura de certificado (CSR), obter a assinatura de um certificado no CSR para obter o certificado no ACM ou fazer upload do certificado noAWS Identity and Access Management(OBJETIVO). Para obter mais informações sobre como importar certificados no ACM, consulteImportar certificadosnaAWS Certificate ManagerGuia do usuário do. Para obter mais informações sobre a upload de certificados no IAM, consulte Trabalhar com certificados de servidor no Manual do usuário do IAM.

Certificado padrão

Quando você cria um listener HTTPS, deve especificar exatamente um certificado. Esse certificado é conhecido como o certificado padrão. É possível substituir o certificado padrão depois de criar o listener HTTPS. Para obter mais informações, consulteSubstituir o certificado padrão

Se você especificar certificados adicionais em uma lista de certificados, o certificado padrão será usado somente se um cliente se conectar sem usar o protocolo Server Name Indication (SNI) para especificar um nome de host ou se não houver certificados correspondentes na lista de certificados.

Se você não especificar certificados adicionais, mas precisar hospedar vários aplicativos seguros por meio de um único load balancer, poderá usar um certificado curinga ou adicionar um Subject Alternative Name (SAN) para cada domínio adicional ao seu certificado.

Lista de certificados

Após criar um listener HTTPS, ele terá um certificado padrão e uma lista de certificados vazia. Você pode adicionar certificados à lista de certificados para o listener. O uso de uma lista de certificados permite que um load balancer ofereça suporte a vários domínios na mesma porta e forneça um certificado diferente para cada domínio. Para obter mais informações, consulteAdicionar certificados à lista de certificados

O load balancer usa um algoritmo inteligente de seleção de certificado com suporte para SNI. Se o nome de host fornecido por um cliente corresponder a um único certificado na lista, o load balancer selecionará esse certificado. Se um nome de host fornecido por um cliente corresponder a vários certificados na lista, o load balancer selecionará o melhor certificado que o cliente puder comportar. A seleção do certificado se baseia nos critérios a seguir, na seguinte ordem:

  • Algoritmo de chave pública (prefira ECDSA em relação a RSA)

  • Algoritmo hashing (prefira SHA em relação a MD5)

  • Comprimento da chave (prefira o maior)

  • Período de validade

As entradas no log de acesso do load balancer indicam o hostname especificado pelo cliente e o certificado apresentado ao cliente. Para obter mais informações, consulteEntradas do log de acesso

Renovação de certificado

Cada certificado vem com um período de validade. Você deve garantir que renovou ou substituiu os certificados do load balancer antes do fim do período de validade. Isso inclui o certificado padrão e os certificados em uma lista de certificados. Renovar ou substituir um certificado não afeta as solicitações em andamento recebidas por um nó do load balancer e são pendentes de roteamento para um destino íntegro. Depois de um certificado ser renovado, as novas solicitações usarão o certificado renovado. Depois de o certificado ser substituído, as novas solicitações usarão o novo certificado.

Você pode gerenciar a renovação e a substituição do certificado da seguinte forma:

  • Certificados fornecidos pelo AWS Certificate Manager e implantados no seu load balancer podem ser renovados automaticamente. O ACM tenta renovar os certificados antes que eles expirem. Para obter mais informações, consulte Renovação gerenciada no Guia do usuário do AWS Certificate Manager.

  • Se você tiver importado um certificado no ACM, deverá monitorar a data de validade do certificado e renová-lo antes que expire. Para obter mais informações, consulte Importar certificados no Manual do usuário do AWS Certificate Manager.

  • Se você importou um certificado para o IAM, deverá criar um novo certificado, importar o novo certificado para o ACM ou IAM, adicionar o novo certificado ao balanceador de carga e remover o certificado expirado do balanceador de carga.

Políticas de segurança

O Elastic Load Balancing usa uma configuração de negociação com Secure Sockets Layer (SSL), conhecida como política de segurança, para negociar conexões SSL entre um cliente e o balanceador de carga. Uma política de segurança é uma combinação de cifras e protocolos. O protocolo estabelece uma conexão segura entre um cliente e um servidor, além de garantir que todos os dados passados entre o cliente e o load balancer sejam privados. A cifra é um algoritmo de criptografia que usa chaves de criptografia para criar uma mensagem codificada. Os protocolos usam várias cifras para criptografar dados pela Internet. Durante o processo de negociação de conexão, o cliente e o load balancer apresentam uma lista de cifras e protocolos que cada um suporta, em ordem de preferência. Por padrão, a primeira cifra na lista do servidor que corresponder a qualquer uma das cifras do cliente é selecionada para a conexão segura.

Os Application Load Balancers não oferecem suporte à renegociação de SSL para conexões de cliente ou de destino.

Ao criar um listener HTTPS, você deve selecionar uma política de segurança. É possível atualizar a política de segurança conforme necessário. Para obter mais informações, consulteAtualizar a política de segurança

Você pode escolher a política de segurança usada para conexões front-end. OELBSecurityPolicy-2016-08a política de segurança é sempre usada para conexões de back-end. Os Application Load Balancers não são compatíveis com políticas de segurança personalizadas.

O Elastic Load Balancing fornece as seguintes políticas de segurança para Application Load Balancers:

  • ELBSecurityPolicy-2016-08 (padrão)

  • ELBSecurityPolicy-TLS-1-0-2015-04

  • ELBSecurityPolicy-TLS-1-1-2017-01

  • ELBSecurityPolicy-TLS-1-2-2017-01

  • ELBSecurityPolicy-TLS-1-2-Ext-2018-06

  • ELBSecurityPolicy-FS-2018-06

  • ELBSecurityPolicy-FS-1-1-2019-08

  • ELBSecurityPolicy-FS-1-2-2019-08

  • ELBSecurityPolicy-FS-1-2-Res-2019-08

  • ELBSecurityPolicy-2015-05 (idêntico a ELBSecurityPolicy-2016-08)

  • ELBSecurityPolicy-FS-1-2-Res-2020-10

Recomendamos a política ELBSecurityPolicy-2016-08 para compatibilidade. É possível usar uma das políticas ELBSecurityPolicy-FS se precisar de sigilo de encaminhamento (FS). Você pode usar uma das políticas ELBSecurityPolicy-TLS para atender aos requisitos de conformidade e padrões de segurança que exigem a desativação de determinadas versões do protocolo TLS ou para oferecer suporte a clientes herdados que exigem cifras desaprovadas. Somente uma pequena porcentagem dos clientes da Internet exigem TLS versão 1.0. Para visualizar a versão do protocolo TLS das solicitações para seu load balancer, habilite o log de acesso para o seu load balancer e examine os logs de acesso. Para obter mais informações, consulte Logs de acesso.

Políticas suportadas pelo FS

A tabela a seguir descreve a política padrão, ELBSecurityPolicy-2016-08, e as políticas ELBSecurityPolicy-FS. O ELBSecurityPolicy- foi removido dos nomes de política na linha de cabeçalho para que se ajustem ao espaço.

Políticas de segurança 
                                            ELBSecurityPolicy-2016-08
                                        
                                            ELBSecurityPolicy-FS-1-2-Res-2020-10
                                        
                                            ELBSecurityPolicy-FS-1-2-Res-2019-08
                                        
                                            ELBSecurityPolicy-FS-1-2-2019-08
                                        
                                            ELBSecurityPolicy-FS-1-1-2019-08
                                        
                                            ELBSecurityPolicy-FS-2018-06
Protocolos TLS

Protocol-TLSv1

Protocol-TLSv1.1

Protocol-TLSv1.2

Cifras TLS

ECDHE-ECDSA-AES128-GCM-SHA256

ECDHE-RSA-AES128-GCM-SHA256

ECDHE-ECDSA-AES128-SHA256

ECDHE-RSA-AES128-SHA256

ECDHE-ECDSA-AES128-SHA

ECDHE-RSA-AES128-SHA

ECDHE-ECDSA-AES256-GCM-SHA384

ECDHE-RSA-AES256-GCM-SHA384

ECDHE-ECDSA-AES256-SHA384

ECDHE-RSA-AES256-SHA384

ECDHE-RSA-AES256-SHA

ECDHE-ECDSA-AES256-SHA

AES128-GCM-SHA256

AES128-SHA256

AES128-SHA

AES256-GCM-SHA384

AES256-SHA256

AES256-SHA

Políticas de segurança TLS

A tabela a seguir descreve a política padrão, ELBSecurityPolicy-2016-08, e as políticas ELBSecurityPolicy-TLS. O ELBSecurityPolicy- foi removido dos nomes de política na linha de cabeçalho para que se ajustem ao espaço.

Políticas de segurança 
                                            ELBSecurityPolicy-2016-08
                                        
                                            ELBSecurityPolicy-TLS-1-2-Ext-2018-06
                                        
                                            ELBSecurityPolicy-TLS-1-2-2017-01
                                        
                                            ELBSecurityPolicy-TSL-1-1-2017-01
                                        
                                            ELBSecurityPolicy-TLS-1-0-2015-04
Protocolos TLS

Protocol-TLSv1

Protocol-TLSv1.1

Protocol-TLSv1.2

Cifras TLS

ECDHE-ECDSA-AES128-GCM-SHA256

ECDHE-RSA-AES128-GCM-SHA256

ECDHE-ECDSA-AES128-SHA256

ECDHE-RSA-AES128-SHA256

ECDHE-ECDSA-AES128-SHA

ECDHE-RSA-AES128-SHA

ECDHE-ECDSA-AES256-GCM-SHA384

ECDHE-RSA-AES256-GCM-SHA384

ECDHE-ECDSA-AES256-SHA384

ECDHE-RSA-AES256-SHA384

ECDHE-RSA-AES256-SHA

ECDHE-ECDSA-AES256-SHA

AES128-GCM-SHA256

AES128-SHA256

AES128-SHA

AES256-GCM-SHA384

AES256-SHA256

AES256-SHA

DES-CBC3-SHA

*Não use essa política, a menos que você precise oferecer suporte a um cliente legado que exija a cifra DES-CBC3-SHA, que é uma cifra fraca.

Para ver a configuração de uma política de segurança para Application Load Balancers usando oAWS CLI, usar odescribe-ssl-policiescomando.

Adicionar um listener HTTPS

Você configura um listener com um protocolo e uma porta para as conexões de clientes com o load balancer, e um grupo de destino para a regra do listener padrão. Para obter mais informações, consulteConfiguração do listener

Pré-requisitos

  • Para criar um listener HTTPS, você deverá especificar um certificado e uma política de segurança. O load balancer usará o certificado para encerrar a conexão e descriptografar solicitações dos clientes antes de roteá-las aos destinos. O load balancer usa a política de segurança ao negociar conexões SSL com os clientes.

  • Para adicionar uma ação de encaminhamento à regra do listener padrão, você deve especificar um grupo de destino disponível. Para obter mais informações, consulteCriar um grupo de destino

  • Você pode especificar o mesmo grupo-alvo em vários ouvintes, mas esses ouvintes devem pertencer ao mesmo balanceador de carga. Para usar um grupo-alvo com um balanceador de carga, você deve verificar se ele não é usado por um ouvinte para nenhum outro balanceador de carga.

Adicionar um listener HTTPS usando o console

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, em LOAD BALANCING (BALANCEAMENTO DE CARGA), escolha Load balancers (Balanceadores de carga).

  3. Selecione um load balancer e escolha Listeners, Add listener (Adicionar listener).

  4. ParaProtocolo: porta, escolhaHTTPSe mantenha a porta padrão ou insira uma porta diferente.

  5. (Opcional) Para autenticar usuários, em Default actions (Ações padrão), escolha Add action (Adicionar ação), Authenticate (Autenticar) e forneça as informações solicitadas. Para salvar a ação, escolha o ícone de marca de seleção. Para obter mais informações, consulteAutenticar usuários usando um Application Load Balancer

  6. Em Default actions (Ações padrão), siga um destes procedimentos:

    • Selecione Add action (Adicionar ação), Forward to (Encaminhar para) e, em seguida, selecione um grupo de destino.

    • Selecione Add action (Adicionar ação), Redirect to (Redirecionar para) e forneça o URL para o redirecionamento. Para obter mais informações, consulteAções de redirecionamento

    • Selecione Add action (Adicionar ação), Return fixed response (Retornar resposta fixa) e forneça um código de resposta e o texto da resposta opcional. Para obter mais informações, consulteAções de resposta fixa

    Para salvar a ação, escolha o ícone de marca de seleção.

  7. Em Security policy (Política de segurança), recomendamos que você mantenha a política de segurança padrão.

  8. Em Default SSL certificate (Certificado SSL padrão), execute uma das seguintes ações:

    • Se tiver criado ou importado um certificado usando o AWS Certificate Manager, escolha From ACM (Do ACM) e, em seguida, o certificado.

    • Se você fez o upload de um certificado usando o IAM, escolhaDo IAMe escolha o certificado.

  9. Escolha Save (Salvar).

  10. (Opcional) Para definir outras regras do listener que encaminhem solicitações com base em um padrão de caminho ou em um nome de host, consulte Adicionar uma regra.

  11. (Opcional) Para adicionar uma lista de certificados para usar com o protocolo SNI, consulte Adicionar certificados à lista de certificados.

Para adicionar um listener HTTPS usando a AWS CLI

Use o comando create-listener para criar o listener e a regra padrão, e o comando create-rule para definir as regras de listener adicionais.

Atualizar um listener HTTPS

Depois de criar um listener HTTPS, você pode substituir o certificado padrão, atualizar a lista de certificados ou substituir a política de segurança. Para obter mais informações, consulteAtualize um listener HTTPS para seu Application Load Balancer