

# Exigir HTTPS na comunicação entre visualizadores e CloudFront
<a name="using-https-viewers-to-cloudfront"></a>

É possível configurar um ou mais comportamentos de cache na distribuição do CloudFront para exigir HTTPS para a comunicação entre os visualizadores e o CloudFront. Também é possível configurar um ou mais comportamentos de cache para permitir HTTP e HTTPS, de forma que o CloudFront exija HTTPS de alguns objetos, mas não de outros. As etapas de configuração dependem do nome de domínio sendo usado nos URLs do objeto:
+ Se estiver usando o nome de domínio atribuído pelo CloudFront à distribuição, como d111111abcdef8.cloudfront.net, altere a configuração **Política de protocolo de visualizador** de um ou mais comportamentos de cache para exigir comunicação HTTPS. Nessa configuração, o CloudFront fornece o certificado SSL/TLS. 

  Para alterar o valor de **Política de protocolo de visualizador** usando o console do CloudFront, consulte o procedimento apresentado posteriormente nesta seção.

  Para obter informações sobre como usar a API do CloudFront para alterar o valor do elemento `ViewerProtocolPolicy`, consulte [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html) na *Referência da API do Amazon CloudFront*.
+ Se estiver usando o nome do seu próprio domínio, como example.com, você precisará alterar várias configurações do CloudFront. Você também precisa usar um certificado SSL/TLS fornecido pelo AWS Certificate Manager (ACM) ou importar um certificado de uma autoridade de certificação de terceiros para o ACM ou para o armazenamento de certificados do IAM. Para obter mais informações, consulte [Usar nomes de domínio alternativos e HTTPS](using-https-alternate-domain-names.md).

**nota**  
Para garantir que os objetos obtidos pelos visualizadores do CloudFront sejam criptografados na origem, sempre use HTTPS entre o CloudFront e a origem. Se você alterou recentemente de HTTP para HTTPS entre o CloudFront e a origem, recomendamos invalidar os objetos nos pontos de presença do CloudFront. O CloudFront retornará um objeto ao visualizador, independentemente de o protocolo usado por ele (HTTP ou HTTPS) corresponder ou não ao protocolo usado pelo CloudFront para obter o objeto. Para obter mais informações sobre como remover ou substituir objetos em uma distribuição, consulte [Adicionar, remover ou substituir conteúdo distribuído pelo CloudFront](AddRemoveReplaceObjects.md).

## Exigir HTTPS de visualizadores
<a name="configure-cloudfront-HTTPS-viewers"></a>

Para exigir HTTPS entre os visualizadores e o CloudFront para um ou mais comportamentos de cache, execute o procedimento a seguir.<a name="using-https-viewers-to-cloudfront-procedure"></a>

**Como configurar o CloudFront para exigir HTTPS entre os visualizadores e o CloudFront**

1. Faça login no Console de gerenciamento da AWS e abra o console do CloudFront em [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. No painel superior do console do CloudFront, escolha o ID da distribuição que você deseja atualizar.

1. Na guia **Behaviors** (Comportamentos), selecione o comportamento de cache que você deseja atualizar e, em seguida, escolha **Edit** (Editar).

1. Especifique um dos seguintes valores para **Política de protocolo de visualizador**:  
**Redirect HTTP to HTTPS**  
Os visualizadores podem usar os dois protocolos. Solicitações HTTP `GET` e `HEAD` são automaticamente redirecionados para solicitações HTTPS. O CloudFront retorna o código de status HTTP 301 (movido permanentemente) com o novo URL HTTPS. Depois, o visualizador reenvia a solicitação para o CloudFront usando o URL de HTTPS.  
Se você enviar `POST`, `PUT`, `DELETE`, `OPTIONS` ou `PATCH` por HTTP com um comportamento de cache HTTP para HTTPS e a versão do protocolo de solicitação HTTP 1.1 ou superior, o CloudFront redirecionará a solicitação para um local HTTPS com um código de status HTTP 307 (redirecionamento temporário). Isso garante que a solicitação seja enviada novamente para o novo local usando o mesmo método e carga do corpo.  
Se você enviar solicitações `POST`, `PUT`, `DELETE`, `OPTIONS` ou `PATCH` por HTTP para comportamento de cache HTTPS com a versão do protocolo de solicitação inferior a HTTP 1.1, o CloudFront retornará um código de status HTTP 403 (proibido).
Quando um visualizador faz uma solicitação HTTP que é redirecionada para uma solicitação HTTPS, o CloudFront cobra pelas duas solicitações. Para a solicitação HTTP, a cobrança é somente pela solicitação e cabeçalhos retornados pelo CloudFront para o visualizador. Para a solicitação HTTPS, a cobrança é pela solicitação e pelos cabeçalhos e objeto retornados por sua origem.  
**HTTPS Only (Somente HTTPS)**  
Os visualizadores só podem acessar seu conteúdo se estiverem usando HTTPS. Se um visualizador enviar uma solicitação HTTP, em vez de HTTPS, o CloudFront retornará o código de status HTTP 403 (proibido) e não retornará o objeto.

1. Escolha **Salvar alterações**.

1. Repita as etapas 3 a 5 para cada comportamento de cache adicional para o qual você deseja exigir HTTPS entre os visualizadores e o CloudFront.

1. Antes de usar a configuração atualizada em um ambiente de produção, confirme:
   + Se o padrão de caminho de cada comportamento de cache se aplica apenas às solicitações nas quais os visualizadores devem usar HTTPS.
   + Se os comportamentos de cache estão listados na ordem em que você deseja que o CloudFront os avalie. Para obter mais informações, consulte [Padrão de caminho](DownloadDistValuesCacheBehavior.md#DownloadDistValuesPathPattern).
   + Se os comportamentos de cache estão roteando as solicitações para as origens corretas. 