Configurar HTTPS para o ambiente do Elastic Beanstalk - AWS Elastic Beanstalk

Configurar HTTPS para o ambiente do Elastic Beanstalk

Se você tiver adquirido e configurado um nome de domínio personalizado para o seu ambiente Elastic Beanstalk, poderá usar HTTPS para permitir que os usuários se conectem ao seu site com segurança. Se você não tiver um nome de domínio, ainda poderá usar HTTPS com um certificado autoassinado para fins de desenvolvimento e teste. O HTTPS é essencial para qualquer aplicativo que transmite dados de usuário ou informações de login.

A maneira mais simples de usar HTTPS com um ambiente Elastic Beanstalk é atribuindo um certificado de servidor ao load balancer do seu ambiente. Quando você configura o load balancer para encerrar o HTTPS, a conexão entre o cliente e o load balancer é segura. As conexões de back-end entre o load balancer e as instâncias do EC2 usam HTTP, portanto nenhuma configuração adicional das instâncias é necessária.

nota

Com o AWS Certificate Manager (ACM), você pode criar um certificado confiável para seus nomes de domínio gratuitamente. Os certificados do ACM só podem ser usados com load balancers da AWS e distribuições do Amazon CloudFront, e o ACM está disponível apenas em determinadas regiões da AWS.

Para usar um certificado ACM com o Elastic Beanstalk, consulte Configurar o load balancer do ambiente do Elastic Beanstalk para encerrar o HTTPS.

Se você executar o seu aplicativo em um ambiente de uma única instância ou precisar proteger a conexão o caminho todo até as instâncias do EC2 atrás do load balancer, você pode configurar o servidor de proxy que é executado na instância para encerrar o HTTPS. Configurar suas instâncias para encerrar as conexões HTTPS exige o uso de arquivos de configuração para modificar o software em execução nas instâncias e para modificar os grupos de segurança para permitir conexões seguras.

Para HTTPS de ponta a ponta em um ambiente com balanceamento de carga, é possível combinar o encerramento da instância e do load balancer para criptografar ambas as conexões. Por padrão, se você configurar o load balancer para encaminhar o tráfego usando HTTPS, ele confiará em qualquer certificado apresentado a ele pelas instâncias de back-end. Para obter o máximo de segurança, você pode anexar políticas ao load balancer que impedem que ele se conecte a instâncias que não apresentarem um certificado público em que ele confia.

nota

Você também pode configurar o load balancer para retransmitir o tráfego HTTPS sem descriptografá-lo. A desvantagem desse método é que o load balancer não pode ver as solicitações e, portanto, não pode otimizar o roteamento ou relatar métricas de resposta.

Se ACM não estiver disponível em sua região, você pode comprar um certificado confiável de terceiros. Um certificado de terceiros pode ser usado para descriptografar tráfego HTTPS no load balancer, nas instâncias de back-end ou em ambos.

Para desenvolvimento e teste, você pode criar e assinar um certificado por conta própria com ferramentas de código aberto. Os certificados autoassinados são gratuitos e fáceis de criar, mas não podem ser usados para a descriptografia de front-end em sites públicos. Se você tentar usar um certificado autoassinado para uma conexão HTTPS com um cliente, o navegador do usuário exibirá uma mensagem de erro indicando que o seu site não é seguro. No entanto, você pode usar um certificado autoassinado para proteger as conexões de back-end sem problemas.

O ACM é a ferramenta preferencial para provisionar, gerenciar e implantar seus certificados de servidor por meio de programação ou usando a CLI da AWS. Se o ACM não estiver disponível em sua região da AWS, você poderá fazer upload de um certificado autoassinado ou de terceiros e de uma chave privada para o AWS Identity and Access Management (IAM) usando a CLI da AWS. Os certificados armazenados no IAM podem ser usados com load balancers e distribuições do CloudFront.

nota

O aplicativo de exemplo Does it have Snakes? no GitHub inclui arquivos de configuração e instruções para cada método de configuração HTTPS com um aplicativo web Tomcat. Consulte o arquivo readme e as instruções de HTTPS para obter mais detalhes.