

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

# Certificados de servidor
<a name="configuring-https.certificate"></a>

Este tópico descreve os diferentes tipos de certificados que você pode usar para configurar o HTTPS e quando aplicar cada um deles. Os subtópicos desta seção fornecem instruções para criar seu próprio certificado e como carregá-lo.

**AWS Certificate Manager (ACM)**  
O ACM é a ferramenta preferencial para provisionar, gerenciar e implantar seus certificados de servidor. Você pode fazer isso programaticamente ou usando o. AWS CLI Com o ACM, você pode criar um certificado confiável para seus nomes de domínio gratuitamente.

 Os certificados ACM só podem ser usados com AWS balanceadores de carga e CloudFront distribuições da Amazon, e o ACM está disponível somente em determinadas regiões. AWS Para usar um certificado do ACM com o Elastic Beanstalk, consulte [Configurar a terminação HTTPS no balanceador de carga](configuring-https-elb.md). Para obter mais informações sobre o ACM, consulte o [https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html). 

**nota**  
 Para obter uma lista das regiões em que o ACM está disponível, consulte [Endpoints e cotas do ACM](https://docs.aws.amazon.com/general/latest/gr/acm.html) na seção *Referência geral da Amazon Web Services*. 

Se o ACM não estiver disponível na sua AWS região, você poderá carregar um certificado de terceiros ou autoassinado e uma chave privada para AWS Identity and Access Management (IAM). Você pode usar o AWS CLI para carregar o certificado. Os certificados armazenados no IAM podem ser usados com balanceadores de carga e CloudFront distribuições. Para obter mais informações, consulte [Upload de um certificado no IAM](configuring-https-ssl-upload.md).

**Certificado de terceiros**  
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.

**Certificado autoassinado**  
Para desenvolvimento e teste, você pode [criar e assinar um certificado](configuring-https-ssl.md) 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.

# Criar e acessar um certificado X509
<a name="configuring-https-ssl"></a>

Você pode criar um certificado X509 para seu aplicativo com `OpenSSL`. OpenSSL é uma biblioteca de código aberto padrão que oferece suporte a uma grande variedade de funções de criptografia, incluindo a criação e a assinatura de certificados x509. Para obter mais informações sobre OpenSSL, visite [www.openssl.org](https://www.openssl.org/).

**nota**  
Só será necessário criar um certificado localmente se você quiser [usar HTTPS em um ambiente de instância única](https-singleinstance.md) ou [criptografar novamente no back-end](configuring-https-endtoend.md) com um certificado autoassinado. Se você possui um nome de domínio, pode criar um certificado AWS e usá-lo com um ambiente de balanceamento de carga gratuitamente usando AWS Certificate Manager (ACM). Consulte [Solicite um certificado](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request.html) no*AWS Certificate Manager Guia do usuário* para obter instruções.

Execute `openssl version` na linha de comando para verificar se o OpenSSL já está instalado. Caso contrário, você pode criar e instalar o código-fonte usando as instruções no [ GitHub repositório público](https://github.com/openssl/openssl) ou usar seu gerenciador de pacotes favorito. [O OpenSSL também está instalado nas imagens Linux do Elastic Beanstalk, então uma alternativa rápida é conectar-se a uma instância em EC2 um ambiente em execução usando o comando da EB CLI:](eb-cli3.md) **eb ssh**

```
~/eb$ eb ssh
[ec2-user@ip-255-55-55-255 ~]$ openssl version
OpenSSL 1.0.1k-fips 8 Jan 2015
```

Você precisa criar uma chave privada RSA para criar sua solicitação de assinatura de certificado (CSR). Para criar sua chave privada, use o comando **openssl genrsa**:

```
[ec2-user@ip-255-55-55-255 ~]$ openssl genrsa 2048 > privatekey.pem
Generating RSA private key, 2048 bit long modulus
.................................................................................................................................+++
...............+++
e is 65537 (0x10001)
```

*privatekey.pem*  
O nome do arquivo onde deseja salvar a chave privada. Em geral, o comando **openssl genrsa** imprime o conteúdo da chave privada na tela, mas esse comando envia a saída para um arquivo. Escolha qualquer nome de arquivo e armazene o arquivo em um local seguro, de modo que possa recuperá-lo mais tarde. Se você perder a sua chave privada, não poderá usar seu certificado.

Um CSR é um arquivo que você envia a uma autoridade de certificação (CA) para solicitar um certificado de servidor digital. Para criar um CSR, use o comando **openssl req**:

```
$ openssl req -new -key privatekey.pem -out csr.pem
You are about to be asked to enter information that will be incorporated 
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
```

Insira as informações solicitadas e pressione **Enter**. A tabela a seguir descreve e mostra exemplos para cada campo.


****  

| Name (Nome) | Descrição | Exemplo | 
| --- | --- | --- | 
| Nome do país | A abreviação ISO de duas letras para seu país. | US = Estados Unidos | 
| Estado | O nome do estado ou província onde sua organização está localizada. Você não pode abreviar esse nome. | Washington | 
| Nome da localidade | O nome da cidade onde sua organização está localizada. | Seattle | 
| Nome da organização | A razão social completa da sua organização. Não abrevie o nome de sua organização. | Corporação de exemplo | 
| Unidade organizacional | Opcional, para fornecer informações adicionais sobre sua organização. | Marketing | 
| Nome comum | O nome de domínio totalmente qualificado para o seu site. Isso deve corresponder ao nome de domínio que os usuários veem quando visitam seu site; caso contrário, serão mostrados erros de certificado. | www.exemplo.com | 
| Endereço de e-mail | O endereço de e-mail do administrador do site. | someone@example.com | 

Você pode enviar a solicitação de assinatura para terceiros assinarem ou assine-a você mesmo para desenvolvimento e teste. Certificados autoassinados também podem ser usados para HTTPS de back-end entre um balanceador de carga e instâncias. EC2 

Para assinar o certificado, use o comando **openssl x509**. O exemplo a seguir usa a chave privada da etapa anterior (*privatekey.pem*) e a solicitação de assinatura (*csr.pem*) para criar um certificado público chamado *public.crt* válido por *365* dias.

```
$ openssl x509 -req -days 365 -in csr.pem -signkey privatekey.pem -out public.crt
Signature ok
subject=/C=us/ST=washington/L=seattle/O=example corporation/OU=marketing/CN=www.example.com/emailAddress=someone@example.com
Getting Private key
```

Guarde a chave privada e o certificado público para uso posterior. Você pode descartar a solicitação de assinatura. Sempre [armazene a chave privada em um local seguro](https-storingprivatekeys.md) e evite adicioná-la ao seu código-fonte.

Para usar o certificado com a plataforma Windows Server, converta-o em um formato PFX. Use o comando a seguir para criar um certificado PFX da chave privada e dos arquivos públicos do certificado:

```
$ openssl pkcs12 -export -out example.com.pfx -inkey privatekey.pem -in public.crt
Enter Export Password: password
Verifying - Enter Export Password: password
```

Agora que você tem um certificado, pode [fazer upload para o IAM](configuring-https-ssl-upload.md) para uso com um load balancer ou [configurar as instâncias em seu ambiente para encerrar o HTTPS](https-singleinstance.md).

# Upload de um certificado no IAM
<a name="configuring-https-ssl-upload"></a>

Para usar seu certificado com o balanceador de carga do seu ambiente Elastic Beanstalk, faça o upload do certificado e da chave privada para (IAM). AWS Identity and Access Management Você pode usar um certificado armazenado no IAM com balanceadores de carga do Elastic Load Balancing e distribuições da Amazon. CloudFront 

**nota**  
AWS Certificate Manager (ACM) é a ferramenta preferida para provisionar, gerenciar e implantar seus certificados de servidor. Para obter mais informações sobre como solicitar um certificado do ACM, consulte [Solicitação de um certificado](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request.html) no *Manual do usuário do AWS Certificate Manager *. Para obter mais informações sobre a importação de certificados de terceiros para o ACM, consulte [Importação de certificados](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html) no *Manual do usuário do AWS Certificate Manager *. Use o IAM para fazer upload de um certificado somente se o ACM não estiver [disponível na sua AWS região](https://docs.aws.amazon.com/general/latest/gr/acm.html).

Você pode usar o AWS Command Line Interface (AWS CLI) para carregar seu certificado. O comando a seguir carrega um certificado autoassinado chamado *https-cert.crt* com uma chave privada chamada: *private-key.pem*

```
$ aws iam upload-server-certificate --server-certificate-name elastic-beanstalk-x509 --certificate-body file://https-cert.crt --private-key file://private-key.pem
{
    "ServerCertificateMetadata": {
        "ServerCertificateId": "AS5YBEIONO2Q7CAIHKNGC",
        "ServerCertificateName": "elastic-beanstalk-x509",
        "Expiration": "2017-01-31T23:06:22Z",
        "Path": "/",
        "Arn": "arn:aws:iam::123456789012:server-certificate/elastic-beanstalk-x509",
        "UploadDate": "2016-02-01T23:10:34.167Z"
    }
}
```

O `file://` prefixo diz ao AWS CLI para carregar o conteúdo de um arquivo no diretório atual. *elastic-beanstalk-x509*especifica o nome para chamar o certificado no IAM.

Se você adquiriu um certificado de uma autoridade de certificação e recebeu um arquivo de cadeia de certificados, faça upload dele incluindo a opção `--certificate-chain`:

```
$ aws iam upload-server-certificate --server-certificate-name elastic-beanstalk-x509 --certificate-chain file://certificate-chain.pem --certificate-body file://https-cert.crt --private-key file://private-key.pem
```

Anote o Nome de recurso da Amazon (ARN) do seu certificado. Você o usará quando atualizar as definições de configuração do load balancer para usar HTTPS.

**nota**  
Um certificado carregado para o IAM permanece armazenado mesmo depois de deixar de ser usado em qualquer balanceador de carga do ambiente. Ele contém dados confidenciais. Quando não precisar mais do certificado para qualquer ambiente, lembre-se de excluí-lo. Para obter detalhes sobre como excluir um certificado do IAM, consulte [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html#delete-server-certificate](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html#delete-server-certificate).

Para obter mais informações sobre certificados de servidor no IAM, consulte [Trabalhar com certificados de servidor](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html) no *Guia do usuário do IAM*.

# Armazenar chaves privadas com segurança no Amazon S3
<a name="https-storingprivatekeys"></a>

A chave privada que você usa para assinar seu certificado público é privada e não deve ser submetida ao código-fonte. Evite armazenar chaves privadas em arquivos de configuração carregando-as no Amazon S3 e configurando o Elastic Beanstalk para fazer download do arquivo do Amazon S3 durante a implantação da aplicação.

O exemplo a seguir mostra as seções [Recursos](environment-resources.md) e [arquivos](customize-containers-ec2.md#linux-files) de um [arquivo de configuração](ebextensions.md) que faz download do arquivo de chave privada de um bucket do Amazon S3.

**Example .ebextensions/privatekey.config**  

```
Resources:
  AWSEBAutoScalingGroup:
    Metadata:
      AWS::CloudFormation::Authentication:
        S3Auth:
          type: "s3"
          buckets: ["elasticbeanstalk-us-west-2-123456789012"]
          roleName: 
            "Fn::GetOptionSetting": 
              Namespace: "aws:autoscaling:launchconfiguration"
              OptionName: "IamInstanceProfile"
              DefaultValue: "aws-elasticbeanstalk-ec2-role"
files:
  # Private key
  "/etc/pki/tls/certs/server.key":
    mode: "000400"
    owner: root
    group: root
    authentication: "S3Auth"
    source: https://elasticbeanstalk-us-west-2-123456789012.s3.us-west-2.amazonaws.com/server.key
```

Substitua o nome do bucket e o URL no exemplo pelos seus. A primeira entrada desse arquivo adiciona um método de autenticação chamado `S3Auth` aos metadados do grupo de Auto Scaling do ambiente. Se você tiver configurado um [perfil de instância](concepts-roles-instance.md) personalizado para o ambiente a ser usado, caso contrário, será aplicado o valor padrão `aws-elasticbeanstalk-ec2-role`. O perfil de instância padrão tem permissão de leitura do bucket de armazenamento do Elastic Beanstalk. Se você usar um outro bucket, [adicione permissões ao perfil de instância](iam-instanceprofile.md#iam-instanceprofile-addperms).

A segunda entrada usa o método de autenticação `S3Auth` para fazer download da chave privada do URL especificado e salvá-la no `/etc/pki/tls/certs/server.key`. O servidor de proxy pode ler a chave privada a partir desse local para [encerrar conexões HTTPS na instância](https-singleinstance.md).

O perfil da instância atribuído às EC2 instâncias do seu ambiente precisa ter permissão para ler o objeto chave do bucket especificado. [Verifique se o perfil de instância tem permissão](iam-instanceprofile.md#iam-instanceprofile-verify) para ler o objeto no IAM e se as permissões no bucket e objeto não proíbem o perfil de instância.

**Para visualizar as permissões de um bucket**

1. Abra o [Console de gerenciamento do Amazon S3](https://console.aws.amazon.com/s3/home).

1. Escolha um bucket.

1. Escolha **Propriedades** e, em seguida, **Permissões**.

1. Verifique se sua conta tem permissão de leitura no bucket.

1. Se uma política de bucket estiver anexada, escolha **Bucket policy** para visualizar as permissões atribuídas ao bucket.