Encerrar o HTTPS nas instâncias do EC2 que executam Docker - 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á.

Encerrar o HTTPS nas instâncias do EC2 que executam Docker

Para os contêineres do Docker, use um arquivo de configuração para habilitar o HTTPS.

Adicione o seguinte trecho ao seu arquivo de configuração, substituindo o material de certificado e de chave privada como instruído, e salve-o no diretório .ebextensions do seu pacote de origem. O arquivo de configuração executa as seguintes tarefas:

  • A chave files cria os seguintes arquivos na instância:

    /etc/nginx/conf.d/https.conf

    Configura o servidor nginx. Este arquivo é carregado quando o serviço do nginx é iniciado.

    /etc/pki/tls/certs/server.crt

    Cria o arquivo de certificado na instância. Substitua o conteúdo do arquivo de certificado pelo conteúdo do seu certificado.

    nota

    YAML depende de um recuo consistente. Compare o nível de recuo ao substituir o conteúdo em um arquivo de configuração de exemplo e se confira se o editor de texto usa espaços, e não caracteres de tabulação, como recuo.

    Se você tiver certificados intermediários, inclua-os no server.crt depois do certificado do site.

    -----BEGIN CERTIFICATE----- certificate file contents -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- first intermediate certificate -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- second intermediate certificate -----END CERTIFICATE-----
    /etc/pki/tls/certs/server.key

    Cria o arquivo de chave privada na instância. 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.

exemplo .ebextensions/https-instance.config
files: /etc/nginx/conf.d/https.conf: mode: "000644" owner: root group: root content: | # HTTPS Server server { listen 443; server_name localhost; ssl on; ssl_certificate /etc/pki/tls/certs/server.crt; ssl_certificate_key /etc/pki/tls/certs/server.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { proxy_pass http://docker; proxy_http_version 1.1; proxy_set_header Connection ""; 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; } } /etc/pki/tls/certs/server.crt: mode: "000400" owner: root group: root content: | -----BEGIN CERTIFICATE----- certificate file contents -----END CERTIFICATE----- /etc/pki/tls/certs/server.key: mode: "000400" owner: root group: root content: | -----BEGIN RSA PRIVATE KEY----- private key contents # See note below. -----END RSA PRIVATE KEY-----
nota

Evite confirmar um arquivo de configuração que contenha sua chave privada para o controle de origem. Depois que você tiver testado a configuração e confirmado se ela está funcionando, armazene a chave privada no Amazon S3 e modifique a configuração para fazer download dele durante a implantação. Para obter instruções, consulte Armazenar chaves privadas com segurança no Amazon S3.

Em um ambiente de instância única, você também deve modificar o grupo de segurança da instância para habilitar o tráfego na porta 443. O seguinte arquivo de configuração recupera a ID do grupo de segurança usando uma função AWS CloudFormation e adiciona uma regra a ela.

exemplo .ebextensions/https-instance-single.config
Resources: sslSecurityGroupIngress: Type: AWS::EC2::SecurityGroupIngress Properties: GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]} IpProtocol: tcp ToPort: 443 FromPort: 443 CidrIp: 0.0.0.0/0

Para um ambiente com balanceamento de carga, configure o load balancer para passar o tráfego seguro inalterado ou descriptografar e criptografar novamente para criptografia de ponta a ponta.