Ir para o conteúdo

Como configuro um certificado SSL/TLS para uma aplicação executada em um ambiente do Elastic Beanstalk?

4 minuto de leitura
0

Quero configurar um certificado SSL/TLS para minha aplicação executada no AWS Elastic Beanstalk.

Breve descrição

Para ativar a criptografia SSL/TLS para sua aplicação executada no Elastic Beanstalk, realize uma das seguintes ações:

  • Configure a terminação HTTPS no nível do balanceador de carga
  • Configure a terminação HTTPS no nível da instância do Amazon Elastic Compute Cloud (Amazon EC2)
  • Redirecione HTTP para HTTPS

Resolução

Configure a terminação HTTPS no nível do balanceador de carga

Para atualizar seu ambiente do Elastic Beanstalk para usar HTTPS, você deve configurar um receptor HTTPS para o balanceador de carga em seu ambiente. Há dois tipos de balanceadores de carga compatíveis com um receptor HTTPS:

  • Classic Load Balancer
  • Application Load Balancer

Para obter mais informações, consulte Configurar a terminação HTTPS no balanceador de carga.

Configure a terminação HTTPS no nível da instância

Para usar HTTPS com um único ambiente de instância do EC2 ou configurar seu balanceador de carga para transmitir tráfego sem descriptografia, use hooks de plataforma. Com os hooks de plataforma, configure o servidor proxy que transmite o tráfego para uma aplicação para interromper as conexões HTTPS. O arquivo de hook depende do tipo de plataforma do Elastic Beanstalk. Para obter mais informações, consulte Configuring HTTPS Termination at the instance (Configuração da terminação HTTPS na instância).

Para estender a configuração padrão do NGINX no Elastic Beanstalk, adicione arquivos de configuração .conf a uma pasta chamada .platform/nginx/conf.d/ no pacote de origem da sua aplicação. A configuração do NGINX no Elastic Beanstalk inclui automaticamente arquivos .conf nessa pasta. Exemplo de configuração:

~/workspace/my-app/
|-- .platform
|   `-- nginx
|       `-- conf.d
|           `-- myconf.conf
`--

Para substituir a configuração padrão do NGINX no Elastic Beanstalk, inclua uma configuração em seu pacote de origem em .platform/nginx/nginx.conf. Exemplo de configuração:

~/workspace/my-app/
|-- .platform
|   `-- nginx
|       `-- nginx.conf
`--

Se você substituir a configuração do NGINX, obtenha as configurações do Elastic Beanstalk para acessar relatórios e monitoramento de integridade aprimorados, mapeamentos automáticos de aplicações e arquivos estáticos. Para obter as configurações, adicione a seguinte linha ao seu nginx.conf:

include conf.d /elasticbeanstalk/ *.conf;

Para obter mais informações sobre como configurar um proxy, consulte Configuração de proxy reverso.

É possível receber a seguinte mensagem no log de erro do proxy:

"nginx: [warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive."

Para evitar esse problema, armazene o seguinte arquivo .conf na pasta de hooks de plataforma .platform/nginx/conf.d/ para encerrar o SSL/TLS no nível da instância:

listen       443 ssl;
server_name  localhost;


location / {
              proxy_pass  http://localhost:app_port;
              proxy_set_header   Connection "";
              proxy_http_version 1.1;
              proxy_set_header        Host            $host;
              proxy_set_header        X-Real-IP       $remote_addr;
              proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header        X-Forwarded-Proto https;
          }
      }

Observação: a AWS retirou as plataformas Amazon Linux AMI (AL1). É uma prática recomendada usar hooks de plataforma para adicionar alterações ao servidor proxy. Mova os arquivos de configuração de proxy do diretório AL1 .ebextensions/nginx para o diretório de hooks da plataforma .platform/nginx no Amazon Linux 2 (AL2) e no Amazon Linux 2023 (AL2023).

Redirecione HTTP para HTTPS

O redirecionamento de HTTP para HTTPS redireciona o tráfego não seguro que o cliente inicia para HTTPS. Para redirecionar o tráfego HTTP para HTTPS para sua aplicação, configure os servidores web nas instâncias do seu ambiente ou configure o Application Load Balancer do ambiente.

Observação: por padrão, os Classic Load Balancers não podem redirecionar o tráfego HTTP para HTTPS. Em vez disso, você deve configurar suas regras de regravação nas instâncias do servidor web que estão por trás do Classic Load Balancer.

AWS OFICIALAtualizada há um ano