Configurar a terminação HTTPS no balanceador de carga - AWS Elastic Beanstalk

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á.

Configurar a terminação HTTPS no balanceador de carga

Para atualizar o ambiente AWS Elastic Beanstalk para usar o HTTPS, é necessário configurar um listener HTTPS para o balanceador de carga em seu ambiente. Dois tipos de balanceador de carga são compatíveis com um listener HTTPS: Classic Load Balancer e Application Load Balancer.

É possível usar o console do Elastic Beanstalk ou um arquivo de configuração para configurar um listener seguro e atribuir o certificado.

nota

Ambientes de instância única não têm um load balancer e não são compatíveis com o encerramento do HTTPS no load balancer.

Configurar um listener seguro usando o console do Elastic Beanstalk

Como atribuir um certificado ao load balancer do seu ambiente
  1. Abra o console do Elastic Beanstalk e, na lista Regions (Regiões), selecione a sua Região da AWS.

  2. No painel de navegação, selecione Ambientes e selecione o nome do ambiente na lista.

    nota

    Se você tiver muitos ambientes, use a barra de pesquisa para filtrar a lista de ambientes.

  3. No painel de navegação, escolha Configuration (Configuração).

  4. Na categoria de configuração Load balancer, escolha Edit (Editar).

    nota

    Se a categoria de configuração Load balancer não tem um botão Edit (Editar), seu ambiente não tem um load balancer.

  5. Na página Modify load balancer (Modificar load balancer), o procedimento varia dependendo do tipo de load balancer associado ao seu ambiente.

    • Classic Load Balancer

      1. Escolha Add listener.

      2. Na caixa de diálogo Classic Load Balancer listener (Listener do Classic Load Balancer), defina as seguintes configurações:

        • Para Listener port, digite a porta de tráfego de entrada, normalmente 443.

        • Para Listener protocol, escolha HTTPS.

        • Para Instance port, digite 80.

        • Para Instance protocol, escolha HTTP.

        • Para SSL certificate, choose your certificate.

      3. Escolha Adicionar.

    • Application Load Balancer

      1. Escolha Add listener.

      2. Na caixa de diálogo Application Load Balancer listener (Listener do Application Load Balancer), defina as seguintes configurações:

        • Para Port, digite a porta de tráfego de entrada, normalmente 443.

        • Em Protocol, escolha HTTPS.

        • Para SSL certificate, choose your certificate.

      3. Escolha Adicionar.

      nota

      Para Classic Load Balancer e Application Load Balancer, se o menu suspenso não mostrar nenhum certificado, será necessário criar ou carregar um certificado para seu nome de domínio personalizado no AWS Certificate Manager (ACM) (preferencial). Como alternativa, faça upload de um certificado para o IAM com a AWS CLI.

    • Network Load Balancer

      1. Escolha Add listener.

      2. Na caixa de diálogo Network Load Balancer listener (Listener do Network Load Balancer) em Port (Porta), digite o número da porta de tráfego de entrada que, normalmente, é 443.

      3. Escolha Adicionar.

  6. Para salvar as alterações, escolha Apply (Aplicar) na parte inferior da página.

Configurar um listener seguro usando um arquivo de configuração

É possível configurar um listener seguro em seu load balancer com um dos seguintes arquivos de configuração.

exemplo .ebextensions/securelistener-clb.config

Use este exemplo quando seu ambiente tiver um Classic Load Balancer. O exemplo usa as opções no namespace do aws:elb:listener para configurar um listener HTTPS na porta 443 com o certificado especificado e encaminhar o tráfego descriptografado para as instâncias em seu ambiente na porta 80.

option_settings: aws:elb:listener:443: SSLCertificateId: arn:aws:acm:us-east-2:1234567890123:certificate/#################################### ListenerProtocol: HTTPS InstancePort: 80

Substitua o texto destacado pelo ARN do seu certificado. Pode ser um certificado criado ou obtido ao carregá-lo no AWS Certificate Manager (ACM) (preferencial) ou um certificado obtido ao carregar o IAM com a AWS CLI.

Para obter mais informações sobre as opções de configuração do Classic Load Balancer, consulte Namespaces de configuração do Classic Load Balancer.

exemplo .ebextensions/securelistener-alb.config

Use este exemplo quando seu ambiente tiver um Application Load Balancer. O exemplo usa opções no namespace aws:elbv2:listener configurar um listener HTTPS na porta 443 com o certificado especificado. O listener direciona o tráfego para o processo padrão.

option_settings: aws:elbv2:listener:443: ListenerEnabled: 'true' Protocol: HTTPS SSLCertificateArns: arn:aws:acm:us-east-2:1234567890123:certificate/####################################
exemplo .ebextensions/securelistener-nlb.config

Use este exemplo quando seu ambiente tiver um Network Load Balancer. O exemplo usa as opções no namespace aws:elbv2:listener para configurar um listener na porta 443. O listener direciona o tráfego para o processo padrão.

option_settings: aws:elbv2:listener:443: ListenerEnabled: 'true'

Configurar um grupo de segurança

Se você configurar o load balancer para encaminhar o tráfego para uma porta de instância diferente da porta 80, será necessário adicionar uma regra para o security group que permita o tráfego de entrada vindo de seu load balancer pela porta de instância configurada. Se você criar seu ambiente em uma VPC personalizada, o Elastic Beanstalk adicionará essa regra para você.

Você adiciona essa regra ao inserir uma chave Resources em um arquivo de configuração no diretório .ebextensions para seu aplicativo.

O arquivo de configuração de exemplo a seguir adiciona uma regra de entrada no security group AWSEBSecurityGroup. Isso permite tráfego na porta 1000 do security group do load balancer.

exemplo .ebextensions/sg-ingressfromlb.config
Resources: sslSecurityGroupIngress: Type: AWS::EC2::SecurityGroupIngress Properties: GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]} IpProtocol: tcp ToPort: 1000 FromPort: 1000 SourceSecurityGroupId: {"Fn::GetAtt" : ["AWSEBLoadBalancerSecurityGroup", "GroupId"]}