

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

# Uso de SSL
<a name="workingsecurity-ssl"></a>

**Importante**  
O AWS OpsWorks Stacks serviço chegou ao fim da vida útil em 26 de maio de 2024 e foi desativado para clientes novos e existentes. É altamente recomendável que os clientes migrem suas cargas de trabalho para outras soluções o mais rápido possível. Se você tiver dúvidas sobre migração, entre em contato com a AWS Support equipe no [AWS re:POST](https://repost.aws/) ou por meio do Premium [AWS Support](https://aws.amazon.com/support).

Para usar o SSL com seu aplicativo, consiga um certificado digital de servidor de uma autoridade de certificação. Para simplificar, essa demonstração cria um certificado e, em seguida, autoassina ele. Os certificados autoassinados são úteis para fins de aprendizagem e teste, mas sempre use um certificado assinado por uma autoridade de certificação para pilhas de produção. 

Nessa demonstração, siga as seguintes instruções: 

1. Instale e configure o OpenSSL.

1. Crie uma chave privada.

1. Crie uma solicitação de assinatura do certificado.

1. Gere um certificado autoassinado.

1. Edite o aplicativo com as informações do certificado. 

**Importante**  
[Se seu aplicativo usa SSL, recomendamos que você desative, se possível SSLv3, nas camadas do servidor de aplicativos para resolver as vulnerabilidades descritas em CVE-2014-3566.](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2014-3566) Caso sua pilha inclua uma camada Ganglia, desative o SSL v3 para essa camada também. Os detalhes dependem da camada em questão. Para obter mais informações, consulte o seguinte.  
[Camada de OpsWorks pilhas do servidor de aplicativos Java](layers-java.md)
[Camada de OpsWorks pilhas do servidor de aplicativos Node.js](workinglayers-node.md)
[Camada de OpsWorks pilhas do servidor de aplicativos PHP](workinglayers-php.md)
[Camada de pilhas do servidor de aplicativos OpsWorks Rails](workinglayers-rails.md)
[Camada estática de OpsWorks pilhas de servidores Web](workinglayers-static.md)
[Camada Ganglia](workinglayers-ganglia.md)

**Topics**
+ [Etapa 1: instalar e configurar o OpenSSL.](#w2ab1c14c57c29c15)
+ [Etapa 2: criar uma chave privada](#w2ab1c14c57c29c17)
+ [Etapa 3: criar uma solicitação de assinatura do certificado](#w2ab1c14c57c29c19)
+ [Etapa 4: Enviar a CSR para a autoridade de certificação](#w2ab1c14c57c29c21)
+ [Etapa 5: editar o aplicativo](#w2ab1c14c57c29c23)

## Etapa 1: instalar e configurar o OpenSSL.
<a name="w2ab1c14c57c29c15"></a>

A criação e a atualização de certificados de servidores exigem uma ferramenta compatível com os protocolos SSL e TLS. OpenSSL é uma ferramenta de código aberto que fornece as funções básicas de criptografia necessárias para criar um token RSA e assinar com sua chave privada.

 O procedimento a seguir supõe que seu computados ainda não tem o OpenSSL instalado. 

**Para instalar o OpenSSL no Linux e Unix**

1. Acesse [OpenSSL: Source, Tarballs](https://www.openssl.org/source/).

1. Faça o download da fonte mais recente.

1. Construa o pacote.

**Para instalar o OpenSSL no Windows**

1. Se o Pacote redistribuível do Microsoft Visual C\$1\$1 2008 não estiver instalado no seu sistema, faça o download do [pacote](https://www.microsoft.com/en-us/download/details.aspx?id=11895).

1. Execute o instalador e siga as instruções fornecidas pelo assistente de configuração do Microsoft Visual C\$1\$1 2008 Redistributable para instalar o redistributable.

1. Acesse [OpenSSL: distribuições binárias](https://www.openssl.org/community/binaries.html), clique na versão adequada dos binários do OpenSSL para o seu ambiente e salve o instalador localmente.

1. Execute o instalador e siga as instruções no **OpenSSL Setup Wizard** para instalar os binários. 

Crie uma variável de ambiente que aponta para o ponto de instalação do OpenSSL abrindo o terminal ou a janela de comando e usando as seguintes linhas de comando. 
+ No Linux e Unix

  ```
  export OpenSSL_HOME=path_to_your_OpenSSL_installation
  ```
+ No Windows

  ```
  set OpenSSL_HOME=path_to_your_OpenSSL_installation 
  ```

Adicione o caminho dos binários do OpenSSL na variável de caminho do seu computador abrindo o terminal ou a janela de comando e usando as seguintes linhas de comando.
+ No Linux e Unix

  ```
  export PATH=$PATH:$OpenSSL_HOME/bin 
  ```
+ No Windows

  ```
  set Path=OpenSSL_HOME\bin;%Path% 
  ```

**nota**  
Qualquer alteração feira nas variáveis do ambiente usando essas linhas de comando são válidas apenas para a seção atual de linha de comando.

## Etapa 2: criar uma chave privada
<a name="w2ab1c14c57c29c17"></a>

Será necessário uma chave privada exclusiva para criar sua solicitação de assinatura de certificado (CSR). Crie a chave usando a seguinte linha de comando:

```
openssl genrsa 2048 > privatekey.pem
```

## Etapa 3: criar uma solicitação de assinatura do certificado
<a name="w2ab1c14c57c29c19"></a>

Uma solicitação de assinatura do certificado (CSR) é um arquivo enviado para uma autoridade de certificação (CA) para solicitar um certificado digital de servidor. Crie a CSR usando a seguinte linha de comando.

```
openssl req -new -key privatekey.pem -out csr.pem
```

A saída do comando será semelhante à seguinte:

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

A tabela a seguir pode ajudar você a criar sua solicitação de certificado.


**Dados da solicitação de certificado**  

| 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. Este nome não pode ser abreviado. | 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. | CorporationX | 
| Unidade organizacional | (Opcional) Para informações adicionais da sua organização. | Marketing | 
| Nome comum | O nome do domínio completamente qualificado para seu CNAME. Você receberá um aviso de verificação do nome do certificado se não houver correspondência. | www.exemplo.com | 
| Endereço de e-mail | O endereço de e-mail do administrador do servidor | someone@example.com | 

**nota**  
O campo do nome comum geralmente é mal-interpretado e completado incorretamente. O nome comum geralmente é o seu servidor mais o nome do domínio. Será semelhante a "www.example.com" ou "example.com". Será necessário criar uma CSR usando o nome comum correto. 

## Etapa 4: Enviar a CSR para a autoridade de certificação
<a name="w2ab1c14c57c29c21"></a>

Para uso na produção, é preciso obter um certificado de servidor enviando sua CSR para uma autoridade de certificação (CA), que pode exigir outras credenciais ou comprovantes de identidade. Se sua solicitação for bem-sucedida, a CA envia de volta um certificado de identidade assinado digitalmente e, possivelmente, um arquivo de cadeia do certificado. AWS não recomenda um CA específica. Para obter uma lista parcial dos disponíveis CAs, consulte [Autoridade Certificadora - Provedores](https://en.wikipedia.org/wiki/Certificate_authority#Providers) na Wikipedia.

Além disso, é possível gerar um certificado autoassinado, que pode ser usado apenas para fins de teste. Para esse exemplo, use a seguinte linha de comando para gerar um certificado autoassinado. 

```
openssl x509 -req -days 365 -in csr.pem -signkey privatekey.pem -out server.crt
```

A saída será semelhante à seguinte:

```
Loading 'screen' into random state - done
Signature ok
subject=/C=us/ST=washington/L=seattle/O=corporationx/OU=marketing/CN=example.com/emailAddress=someone@example.com
Getting Private key
```

## Etapa 5: editar o aplicativo
<a name="w2ab1c14c57c29c23"></a>

Após gerar o seu certificado e assiná-lo, atualize seu aplicativo para ativar o SSL e forneça as informações do seu certificado. Na página **Apps (Aplicativos)**, escolha um aplicativo para abrir a página de detalhes e clique em **Edit App (Editar aplicativo)**. Para ativar o suporte ao SSL, defina **Enable SSL (Habilitar SSL)** como **Yes (Sim)**, que exibe as seguintes opções de configuração.

**SSL Certificate (Certificado SSL)**  
Cole o conteúdo do arquivo do certificado da chave pública (.crt) na caixa. O certificado deve ser semelhante ao seguinte:  

```
-----BEGIN CERTIFICATE-----
MIICuTCCAiICCQCtqFKItVQJpzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMC
dXMxEzARBgNVBAgMCndhc2hpbmd0b24xEDAOBgNVBAcMB3NlYXR0bGUxDzANBgNV
BAoMBmFtYXpvbjEWMBQGA1UECwwNRGV2IGFuZCBUb29sczEdMBsGA1UEAwwUc3Rl
cGhhbmllYXBpZXJjZS5jb20xIjAgBgkqhkiG9w0BCQEWE3NhcGllcmNlQGFtYXpv
...
-----END CERTIFICATE-----
```
Caso esteja usando o Nginx e tenha um arquivo de cadeia do certificado, acrescente o conteúdo no arquivo do certificado da chave pública.
Se estiver atualizando um certificado existente, siga as seguintes instruções:  
+ Escolha **Update SSL certificate (Atualizar certificado SSL)** para atualizar o certificado.
+ Caso o novo certificado não corresponda à chave privada existente, escolha **Update SSL certificate key (Atualizar chave de certificado SSL)**.
+ Caso o novo certificado não corresponda à cadeia de certificado existente, escolha **Update SSL certificates (Atualizar certificados SSL)**.

**SSL Certificate Key (Chave de certificado SSL)**  
Cole o conteúdo do arquivo do certificado da chave privada (.pem) na caixa. Ela deve ser parecida com a seguinte:  

```
----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQC0CYklJY5r4vV2NHQYEpwtsLuMMBhylMrgBShKq+HHVLYQQCL6
+wGIiRq5qXqZlRXje3GM5Jvcm6q0R71MfRIl1FuzKyqDtneZaAIEYniZibHiUnmO
/UNqpFDosw/6hY3ONk0fSBlU4ivD0Gjpf6J80jL3DJ4R23Ed0sdL4pRT3QIDAQAB
AoGBAKmMfWrNRqYVtGKgnWB6Tji9QrKQLMXjmHeGg95mppdJELiXHhpMvrHtpIyK
...
-----END RSA PRIVATE KEY-----
```

**SSL certificates of Certification Authorities**  
Se tiver um arquivo de cadeia do certificado, cole o conteúdo na caixa.  
Se estiver usando Nginx, deixe a caixa em branco. Se tiver um arquivo de cadeia do certificado, acrescente-o no arquivo do certificado da chave pública em **SSL Certificate Key (Chave de certificado SSL)**.

![\[SSL Settings interface with options for SSL Suporte, Certificate, Key, and Certification Authorities.\]](http://docs.aws.amazon.com/pt_br/opsworks/latest/userguide/images/app_ssl_settings.png)


Depois de clicar em **Save**, [refaça a implantação do aplicativo](workingapps-deploying.md) para atualizar suas instâncias online.

Para as [camadas integradas do servidor de aplicativos](workingcookbook-json.md#workingcookbook-json-deploy), o OpsWorks Stacks atualiza automaticamente a configuração do servidor. Após o término da implantação, verifique se a instalação do OpenSSL funcionou da seguinte maneira.

**Para verificar a instalação de um OpenSSL**

1. Acesse a página **Instances**.

1. Execute o aplicativo clicando no endereço de IP da instância do servidor do aplicativo ou, se estiver usando um load balancer, o endereço de IP do load balancer.

1. Altere o prefixo do endereço de IP de **http://** para **https://** e atualize o navegador para verificar se a página carrega corretamente com o SSL.

Os usuários que têm aplicativos configurados para serem executados no Mozilla Firefox às vezes recebem o seguinte erro no certificado: `SEC_ERROR_UNKNOWN_ISSUER`. Esse erro pode ser causado pela funcionalidade de substituição do certificado nos programas antivírus e antimalware de sua organização, por alguns tipos de monitoramento de tráfego de rede e software de filtragem ou por malware. Para obter mais informações sobre como solucionar esse erro, consulte [Como solucionar problemas de códigos de erro de segurança em sites seguros](https://support.mozilla.org/en-US/kb/error-codes-secure-websites?redirectlocale=en-US&redirectslug=troubleshoot-SEC_ERROR_UNKNOWN_ISSUER#w_monitoringfiltering-in-corporate-networks) no site de suporte do Mozilla Firefox.

Para todas as outras camadas, incluindo as personalizadas, o OpsWorks Stacks simplesmente adiciona as configurações do SSL aos atributos [`deploy`](workingcookbook-json.md#workingcookbook-json-deploy) do aplicativo. Implemente uma receita personalizada para recuperar as informações do objeto do nó e configurar o servidor adequadamente.