Como faço para configurar HTTPS para meu ambiente do Elastic Beanstalk?
Quero configurar HTTPS para meu ambiente AWS Elastic Beanstalk para criptografar dados do meu balanceador de carga para minha instância do Amazon Elastic Compute Cloud (Amazon EC2).
Breve descrição
Se você configurou um nome de domínio personalizado para seu ambiente do Elastic Beanstalk, utilize 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, utilize HTTPS com um certificado autoassinado para fins de desenvolvimento e teste.
Para ambientes de instância única, você deve criar localmente a chave privada e o certificado. Em seguida, faça o upload do certificado para o AWS Identity and Access Management (AWS IAM).
É uma prática recomendada usar balanceadores de carga com o AWS Certificate Manager (ACM) para provisionar, gerenciar e implantar programaticamente seus certificados de servidor. Também é possível usar a AWS Command Line Interface (AWS CLI) para fazer upload de um certificado e uma chave privada de terceiros ou autoassinados para o IAM. Se o ACM não estiver disponível na sua Região da AWS, use a AWS CLI.
Resolução
Prepare seu ambiente do Elastic Beanstalk
Para direcionar o tráfego para seu ambiente do Elastic Beanstalk, use Amazon Route 53 para registrar um novo domínio ou outro provedor de domínio.
Se o URL do seu ambiente incluir uma Região, crie um nome de alias. Crie um registro CNAME se o URL do seu ambiente não incluir uma Região.
Importante: é possível usar registros CNAME para ambientes criados antes de 2016. Não é possível usar um registro CNAME com um domínio apex da zona, também conhecido como domínio raiz ou domínio nu. Para obter mais informações, consulte Comparação de registros de alias e CNAME.
Em seguida, crie um certificado no ACM ou faça o upload de um certificado e uma chave privada autoassinados ou de terceiros para o IAM.
Adicione receptores aos seus balanceadores de carga
Conclua as seguintes etapas:
- Abra o console do Elastic Beanstalk.
- Selecione seu ambiente.
- No painel de navegação, escolha Configuração.
- Na categoria Balanceador de carga, escolha Modificar.
- Para adicionar o receptor à porta 443, realize as etapas do balanceador de carga que está em seu ambiente do Elastic Beanstalk.
Observação: é uma prática recomendada usar um Application Load Balancer ou um Network Load Balancer.
Em Application Load Balancer
Conclua as seguintes etapas:
- Escolha Adicionar Receptor.
- Em Porta, insira a porta de tráfego de entrada. Por exemplo, 443.
- Em Protocolo, escolha HTTPS.
- Em Certificado SSL, escolha seu certificado e, em seguida, selecione a Política do SSL da lista suspensa.
- Escolha Adicionar e, em seguida, escolha Aplicar.
Em Network Load Balancer
Conclua as seguintes etapas:
- Escolha Adicionar Receptor.
- Em Porta, insira a porta de tráfego de entrada. Por exemplo, 443.
- Escolha Adicionar e, em seguida, escolha Aplicar.
Em Classic Load Balancer
Conclua as seguintes etapas:
- Escolha Adicionar Receptor.
- Em Porta, insira a porta de tráfego de entrada. Por exemplo, 443.
- Em Protocolo, escolha HTTPS.
- Em Porta da Instância, insira 80.
- Em Protocolo da Instância, escolha HTTP.
- Em Certificado SSL, escolha seu certificado e, em seguida, selecione a Política do SSL da lista suspensa.
- Escolha Adicionar e, em seguida, escolha Aplicar.
Configure suas instâncias para interromper as conexões HTTPS
Para configurar suas instâncias para interromper as conexões HTTPS, use o arquivo de configuração .ebextensions para modificar o software que é executado nas instâncias. Para obter mais informações, consulte Encerramento de HTTPS em instâncias do Amazon EC2 que executam .NET Core no Linux. Além disso, é possível usar arquivos de configuração para modificar grupos de segurança para que eles permitam conexões seguras.
Importante: se você usa um ambiente de instância única, ignore as etapas a seguir. Realize as etapas na seção Interromper HTTPS na instância (HTTPS de ponta a ponta) em um ambiente de instância única.
Para configurar suas instâncias para interromper as conexões HTTPS, conclua as seguintes etapas:
-
Adicione um receptor seguro ao seu balanceador de carga. Use um dos seguintes arquivos de configuração com base no tipo de balanceador de carga em seu ambiente Elastic Beanstalk.
Para um Classic Load Balancer, use o arquivo .ebextensions/https-reencrypt-clb.config:option_settings: aws:elb:listener:443: InstancePort: 443 InstanceProtocol: HTTPS aws:elasticbeanstalk:application: Application Healthcheck URL: HTTPS:443/Para um Application Load Balancer, use o arquivo .ebextensions/https-reencrypt-alb.config:
option_settings: aws:elbv2:listener:443: DefaultProcess: https ListenerEnabled: 'true' Protocol: HTTPS aws:elasticbeanstalk:environment:process:https: Port: '443' Protocol: HTTPSPara um Network Load Balancer, use o arquivo .ebextensions/https-reencrypt-nlb.config:
option_settings: aws:elbv2:listener:443: DefaultProcess: https ListenerEnabled: 'true' aws:elasticbeanstalk:environment:process:https: Port: '443' -
Atualize o balanceador de carga para receber tráfego na porta 443.
É possível criar um novo grupo de segurança e, em seguida, fazer com que o Elastic Beanstalk use esse grupo de segurança para receber tráfego na porta 443. Por exemplo, o seguinte arquivo .ebextensions/https-lbsecuritygroup.config cria um grupo de segurança e o anexa ao balanceador de carga:option_settings: # Use the custom security group for the load balancer aws:elb:loadbalancer: SecurityGroups: '`{ "Ref" : "loadbalancersg" }`' ManagedSecurityGroup: '`{ "Ref" : "loadbalancersg" }`' Resources: loadbalancersg: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: load balancer security group VpcId: vpc-####### SecurityGroupIngress: - IpProtocol: tcp FromPort: 443 ToPort: 443 CidrIp: 0.0.0.0/0 - IpProtocol: tcp FromPort: 80 ToPort: 80 CidrIp: 0.0.0.0/0 SecurityGroupEgress: - IpProtocol: tcp FromPort: 80 ToPort: 80 CidrIp: 0.0.0.0/0Observação: substitua o VpcId pelo valor para seu ambiente. O exemplo anterior inclui entrada e saída pela porta 80 para permitir conexões HTTP. Para permitir somente conexões seguras, remova a configuração da porta 80 na seção SecurityGroupIngress.
-
Adicione regras de entrada e saída que permitam comunicação pela porta 443 entre o grupo de segurança do balanceador de carga e o grupo de segurança das instâncias.
Por exemplo, use o seguinte arquivo .ebextensions/https-backendsecurity.config:Resources: # Add 443-inbound to instance security group (AWSEBSecurityGroup) httpsFromLoadBalancerSG: Type: AWS::EC2::SecurityGroupIngress Properties: GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]} IpProtocol: tcp ToPort: 443 FromPort: 443 SourceSecurityGroupId: {"Fn::GetAtt" : ["loadbalancersg", "GroupId"]} balancer security group (loadbalancersg) httpsToBackendInstances: Type: AWS::EC2::SecurityGroupEgress Properties: GroupId: {"Fn::GetAtt" : ["loadbalancersg", "GroupId"]} IpProtocol: tcp ToPort: 443 FromPort: 443 DestinationSecurityGroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]} -
Adicione o snippet a seguir ao seu arquivo de configuração e salve-o no diretório .ebextensions:
files: /etc/pki/tls/certs/server.crt: content: | -----BEGIN CERTIFICATE----- certificate file contents -----END CERTIFICATE----- /etc/pki/tls/certs/server.key: content: | -----BEGIN RSA PRIVATE KEY----- private key contents -----END RSA PRIVATE KEY-----Observação: substitua o conteúdo do arquivo do certificado pelo conteúdo do arquivo do seu certificado e o conteúdo da chave privada pelo conteúdo da sua chave privada.
A configuração de encerramento HTTPS varia de acordo com sua pilha de soluções. O arquivo .ebextensions de qualquer pilha de soluções codifica o valor da chave privada e do certificado do servidor em .ebextensions. Para proteger ainda mais esses arquivos, faça upload do conteúdo do arquivo para o Amazon Simple Storage Service (Amazon S3) e use S3Auth para transferi-lo para o Amazon EC2.
-
Use a chave files para criar os seguintes arquivos na instância /etc/pki/tls/certs/server.crt.
-
Use o arquivo de certificado a seguir para criar o arquivo de certificado na instância:
-----BEGIN CERTIFICATE----- certificate file contents -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- first intermediate certificate -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- second intermediate certificate -----END CERTIFICATE-----Observação: substitua o conteúdo do arquivo do certificado pelo conteúdo do seu certificado. Se você tiver certificados intermediários, inclua-os em server.crt após o certificado do seu site.
-
Use /etc/pki/tls/certs/server.key para criar o arquivo de chave privada na instância.
Observação: substitua o conteúdo da chave privada pelo conteúdo da chave privada usada para criar a solicitação de certificado ou o certificado autoassinado. -
Configure o servidor proxy que é executado na instância para encerrar o HTTPS. Todas as plataformas iniciam a configuração do servidor proxy de maneira uniforme.
-
Para implantar arquivos de configuração em seu ambiente, adicione-os a um diretório denominado .ebextensions na raiz do seu pacote de aplicações.
-
Implante o código-fonte que inclui esses arquivos de configuração.
Encerre HTTPS na instância (HTTPS de ponta a ponta) em um ambiente de instância única
Use o arquivo .ebextensions para permitir tráfego de entrada na porta 443 para a instância em que sua aplicação de Elastic Beanstalk é executada.
Exemplo:
Resources: sslSecurityGroupIngress: Type: AWS::EC2::SecurityGroupIngress Properties: GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]} IpProtocol: tcp ToPort: 443 FromPort: 443 CidrIp: 0.0.0.0/0
Em seguida, configure o servidor proxy executado na instância para encerrar o HTTPS.
Observação: a configuração de encerramento HTTPS varia de acordo com sua pilha de soluções. O arquivo .ebextensions de qualquer pilha de soluções codifica o valor da chave privada e do certificado do servidor em .ebextensions. Para proteger ainda mais esses arquivos, faça upload do conteúdo do arquivo para o Amazon Simple Storage Service (Amazon S3) e use S3Auth para transferi-lo para o Amazon EC2.
Para implantar arquivos de configuração em seu ambiente, adicione-os a um diretório denominado .ebextensions na raiz do pacote de aplicações. Em seguida, implante o código-fonte que inclui esses arquivos de configuração.
- Tópicos
- Compute
- Idioma
- Português
Vídeos relacionados


Conteúdo relevante
- feita há 8 meses
- feita há 5 meses
- feita há 8 meses
- feita há 8 meses