---
name: azion-solicite-um-certificado-let-s-encrypt
description: >-
  Solicite um certificado Let's Encrypt para os domínios de um workload, prepare os registros do desafio e verifique o status da emissão.
---

# Solicite um certificado Let's Encrypt

Você pode solicitar um certificado Let's Encrypt™ para os domínios de um [workload](/pt-br/documentacao/plataforma/workloads/) pelo Azion Console, pela [Azion CLI](/pt-br/documentacao/devtools/cli/) ou pela API. Para usar um certificado obtido de outra autoridade certificadora, consulte [Envie um certificado digital](/pt-br/documentacao/guias/seguranca-de-aplicacoes/tls-e-certificados/certificado-digital/).

HTTPS no seu próprio hostname precisa de um certificado de servidor que o cubra, porque o certificado SAN padrão da Azion cobre apenas o workload domain e o Azion Custom Domain. Com um certificado Let's Encrypt, [Certificate Manager](/pt-br/documentacao/plataforma/workloads/#certificate-manager) cuida do certificado por você. A Azion solicita o certificado ao Let's Encrypt, conclui o desafio que prova que você controla cada hostname e renova o certificado antes que ele expire. Alguns clientes mais antigos não conseguem validar a cadeia de um certificado Let's Encrypt. Para saber quais clientes, consulte [Cadeia de certificados](/pt-br/documentacao/plataforma/workloads/certificate-manager/certificados/#cadeia-de-certificados).

Uma conta que opera na API v3 com Domains seleciona o certificado em cada domínio, em vez disso. Para mais informações, consulte [Domains](/pt-br/documentacao/plataforma/workloads/domains/).

---

Selecione uma interface. Os pré-requisitos e os passos de cada tarefa seguem a sua escolha.

## Pré-requisitos

- Um workload na infraestrutura de produção cujos domínios listam todos os hostnames que o certificado deve cobrir. Para listar um hostname em um workload, consulte [Adicione um domínio a um workload](/pt-br/documentacao/guias/plataforma/migracao/configurar-dominio/).
- Um domínio que a sua conta tem permissão para usar, registrado no Domain Name System (DNS).
- Acesso aos registros DNS do domínio, no seu provedor de DNS ou no [Edge DNS](/pt-br/documentacao/plataforma/edge-dns/).

**Console**

- Acesso ao Azion Console. Para mais informações, consulte [Como acessar o Azion Console](/pt-br/documentacao/guias/plataforma/conta-e-billing/como-acessar-o-azion-console/).

**CLI**

- A [Azion CLI](/pt-br/documentacao/devtools/cli/), autorizada com a sua conta. Esta página corresponde à Azion CLI 4.23.0.
- O ID do workload. `azion create workload` o imprime como `Created Workload with ID <workload-id>`.

**API**

- Um token pessoal para o header `Authorization`, no formato `Token [TOKEN VALUE]`. Para criar um token, consulte [Tokens pessoais](/pt-br/documentacao/fundamentos/personal-tokens/).
- `curl` ou outro cliente HTTP.
- O ID do workload. `azion create workload` o imprime como `Created Workload with ID <workload-id>`.

---

## Prepare os registros DNS para o desafio

O Let's Encrypt emite o certificado apenas depois de validar todos os hostnames da solicitação. O desafio que você escolhe decide quais registros DNS devem existir antes de você enviar a solicitação:

| Desafio | Preset do Console                         | Valor de `challenge` | O que o DNS precisa antes da solicitação                                                                   |
| ------- | ----------------------------------------- | -------------------- | ---------------------------------------------------------------------------------------------------------- |
| HTTP-01 | *New Let's Encrypt Certificate (HTTP-01)* | `http`               | Todo hostname já aponta para o workload domain                                                             |
| DNS-01  | *New Let's Encrypt Certificate (DNS-01)*  | `dns`                | Nada quando a zona está no Edge DNS. Com outro provedor de DNS, um registro `_acme-challenge` por hostname |

Com DNS-01 e uma zona no Edge DNS, a Azion grava o registro `_acme-challenge` na zona e o desafio é concluído sem nenhuma ação sua. Escolha DNS-01 quando um hostname ainda não aponta para a Azion, como durante uma migração de outro provedor. Para saber como cada desafio valida um hostname, consulte [Validação de domínio](/pt-br/documentacao/plataforma/workloads/certificate-manager/emissao-e-renovacao/#validacao-de-dominio).

No seu provedor de DNS, crie os registros que o seu desafio precisa, uma linha por hostname:

| Nome                                                                    | Tipo    | Valor                                                                               | Crie quando                                                                |
| ----------------------------------------------------------------------- | ------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| O seu hostname, como `www.example.com`                                  | `CNAME` | O workload domain, como `<id>.map.azionedge.net`                                    | HTTP-01: antes da solicitação. DNS-01: antes de enviar tráfego ao workload |
| `_acme-challenge.<your-domain>`, como `_acme-challenge.www.example.com` | `CNAME` | `<your-domain>.letsencrypt.azion.com`, como `www.example.com.letsencrypt.azion.com` | DNS-01 com a zona em outro provedor de DNS: antes da solicitação           |

Quando o Edge DNS mantém a zona, crie o registro do hostname nele. Para um domínio apex, o registro em cada tipo de provedor e como verificar a resolução, consulte [Aponte um domínio para um workload](/pt-br/documentacao/guias/plataforma/migracao/apontar-dominio-para-a-azion/). Para registros e zonas no Edge DNS, consulte [Guias e tutoriais de Edge DNS](/pt-br/documentacao/plataforma/edge-dns/guias/).

Mantenha o registro `_acme-challenge` enquanto um workload usar o certificado. A Azion renova o certificado 30 dias antes de ele expirar executando o desafio novamente, e um registro excluído faz a renovação falhar.

---

## Solicite o certificado

Uma solicitação Let's Encrypt nomeia o hostname principal como common name e, opcionalmente, outros hostnames como nomes alternativos. Todo nome deve pertencer a um domínio que a sua conta tem permissão para usar.

**Console**

No Azion Console, você solicita o certificado a partir do workload, que obtém os hostnames dos seus **Domains**. Para solicitar o certificado no Azion Console:

1. **Abra a página Workloads**

   Acesse [Azion Console](https://console.azion.com/) > **Workloads**.

2. **Abra o workload**

   Selecione o workload cujos **Domains** listam os hostnames. O formulário de edição dele abre.

3. **Ative o suporte a HTTPS**

   Na seção **Protocol Settings**, se **HTTPS support** estiver desativado, ative-o. **Digital Certificate** aparece apenas enquanto ele estiver ativado.

4. **Selecione um preset Let's Encrypt**

   Em **Digital Certificate**, em **Certificates presets**, selecione *New Let's Encrypt Certificate (DNS-01)* ou *New Let's Encrypt Certificate (HTTP-01)*.

5. **Salve o workload**

   Selecione **Save**.

Azion Console mostra "Your workload has been updated". Ele solicita um certificado chamado `Lets Encrypt - <workload name> - <date and time>` para os hostnames em **Domains**, com uma chave `rsa_2048`. O workload nomeia esse certificado em **Digital Certificate**, então nenhum vínculo separado é necessário. Até que o certificado seja validado, o campo avisa "This certificate is pending validation and HTTPS may not work until it’s validated".

**CLI**

Para solicitar o certificado com a Azion CLI, execute `azion create digital-certificate` com a autoridade `lets_encrypt`. Defina `--challenge` como `dns` ou `http` e liste os outros hostnames em `--alternative-names`, separados por vírgulas:

```bash
azion create digital-certificate \
  --name <certificate-name> \
  --authority lets_encrypt \
  --challenge dns \
  --common-name <your-domain> \
  --alternative-names <other-hostname>
```

A flag opcional `--key-algorithm` aceita `rsa_2048`, `rsa_4096` ou `ecc_384`. A Azion aceita a solicitação e agenda a emissão, e o novo certificado aparece no Certificate Manager com o status `pending`.

Para encontrar o ID do novo certificado, liste os certificados da conta:

```bash
azion list digital-certificate --details
```

A saída lista cada certificado com as colunas `ID`, `NAME`, `STATUS`, `TYPE` e `MANAGED`. Um certificado Let's Encrypt tem o tipo `edge_certificate`, e `MANAGED` mostra `true`.

**API**

Para solicitar o certificado com a API, envie uma requisição `POST` ao endpoint de solicitação de certificados. Defina `challenge` como `dns` ou `http` e liste os outros hostnames em `alternative_names`:

```bash
curl --request POST \
  --url https://api.azion.com/v4/workspace/tls/certificates/request \
  --header 'Accept: application/json' \
  --header 'Authorization: Token [TOKEN VALUE]' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "<certificate-name>",
  "authority": "lets_encrypt",
  "challenge": "dns",
  "common_name": "<your-domain>",
  "alternative_names": []
}'
```

O campo opcional `key_algorithm` aceita `rsa_2048`, `rsa_4096` ou `ecc_384`, e o padrão é `ecc_384`. A API retorna o certificado em `data`, com o seu `id` e o `status` definido como `pending`. O `id` identifica o certificado quando você o vincula e verifica o seu status.

Um nome da solicitação para o qual a sua conta não tem permissão é recusado. A Azion CLI imprime a recusa como:

```text
Error: Failed to request the Digital Certificate: ["This account cannot use certain common or alternative names because it does not have permission for their domain names."]. Check your settings and try again. If the error persists, contact Azion support
```

Para as causas e as correções, consulte [Solucionar problemas de Workloads](/pt-br/documentacao/plataforma/workloads/solucao-de-problemas/#certificate-manager). Um workload não pode listar um hostname wildcard, então o Console não pode solicitar um certificado wildcard. Para solicitar um com o desafio DNS-01, consulte [Solicite um certificado Let's Encrypt com a API](/pt-br/documentacao/guias/seguranca-de-aplicacoes/tls-e-certificados/como-gerar-um-certificado-lets-encrypt-via-api/).

---

## Vincule o certificado ao workload

Um certificado protege o tráfego HTTPS apenas depois que um workload o nomeia no seu campo `tls.certificate`. O preset do Console vincula o certificado que ele solicita. Um certificado que você solicitou com a Azion CLI ou com a API precisa deste vínculo.

**Console**

Para vincular um certificado que a conta já possui no Azion Console:

1. **Abra a página Workloads**

   Acesse [Azion Console](https://console.azion.com/) > **Workloads**.

2. **Abra o workload**

   Selecione o workload cujos **Domains** listam os hostnames do certificado. O formulário de edição dele abre.

3. **Selecione o certificado**

   Na seção **Protocol Settings**, em **Digital Certificate**, em **My certificates**, selecione o certificado.

4. **Salve o workload**

   Selecione **Save**.

Azion Console mostra "Your workload has been updated", e **Digital Certificate** mostra o certificado.

**CLI**

Para vincular o certificado com a Azion CLI, salve um arquivo JSON com o ID do workload e o objeto `tls`, aqui como `tls.json`. O arquivo repete os `ciphers` e a `minimum_version` do workload, em que `7` e `tls_1_3` são os padrões:

```json
{
  "id": <workload-id>,
  "tls": { "certificate": <certificate-id>, "ciphers": 7, "minimum_version": "tls_1_3" }
}
```

Atualize o workload com o arquivo:

```bash
azion update workload --file tls.json
```

O comando imprime o ID do workload que ele atualizou:

```text
Updated Workload with ID <workload-id>
```

**API**

Para vincular o certificado com a API, envie uma requisição `PATCH` ao workload com o ID do certificado em `tls.certificate`:

```bash
curl --request PATCH \
  --url https://api.azion.com/v4/workspace/workloads/<workload-id> \
  --header 'Accept: application/json' \
  --header 'Authorization: Token [TOKEN VALUE]' \
  --header 'Content-Type: application/json' \
  --data '{
  "tls": { "certificate": <certificate-id>, "ciphers": 7, "minimum_version": "tls_1_3" }
}'
```

A API aceita a atualização.

Uma mudança no workload leva vários minutos para alcançar toda a infraestrutura distribuída da Azion, e as requisições podem receber a configuração antiga ou a nova nesse intervalo. Depois que o certificado é emitido e a mudança se propaga, o certificado mostra `active` e protege o HTTPS nos domínios do workload.

---

## Verifique o status da emissão

A Azion faz a primeira tentativa de emitir o certificado em até 5 minutos depois da solicitação. O campo `status` do certificado mostra em que ponto a emissão está.

**Console**

Para verificar o status no Azion Console:

1. **Abra a página Certificate Manager**

   Acesse [Azion Console](https://console.azion.com/) > **Certificate Manager**.

2. **Encontre o certificado**

   Encontre o certificado na lista. Um certificado solicitado a partir de um workload se chama `Lets Encrypt - <workload name> - <date and time>`, com o tipo **TLS Certificate**.

Um certificado `pending` mostra um ícone de aviso, e um `failed` mostra um ícone de erro, com o motivo como explicação. Um certificado cuja data de validade já passou recebe a tag **Expired**.

**CLI**

Para verificar o status com a Azion CLI, descreva o certificado:

```bash
azion describe digital-certificate --digital-certificate-id <certificate-id> --format json
```

A saída é o certificado como a API o retorna. Para um certificado Let's Encrypt, `managed` é `true`, `authority` é `lets_encrypt` e `challenge` é `dns` ou `http`. Leia `status` e, enquanto ele for `failed`, leia o motivo em `status_detail`.

**API**

Para verificar o status com a API, envie uma requisição `GET` ao certificado, com o `id` que a solicitação retornou:

```bash
curl --request GET \
  --url https://api.azion.com/v4/workspace/tls/certificates/<certificate-id> \
  --header 'Accept: application/json' \
  --header 'Authorization: Token [TOKEN VALUE]'
```

A resposta traz o certificado com o seu `status` e o seu `status_detail`. Para listar todos os certificados da conta com os seus status, envie a mesma requisição para `https://api.azion.com/v4/workspace/tls/certificates`.

O certificado passa de `pending` para `challenge_verification` enquanto o desafio aguarda a validação. Depois que o Let's Encrypt o emite, ele mostra `active` enquanto um workload o nomeia, e `inactive` caso contrário. Quando a validação falha, ele mostra `failed`, e `status_detail` nomeia o hostname a verificar, como `An error has occurred while issuing the requested certificate. Please verify the following domains CNAME: www.example.com`.

Uma tentativa que falha é repetida em um cronograma, então um registro que você corrige depois ainda pode terminar em uma emissão automática. Para o cronograma de novas tentativas, consulte [Tempo de emissão e novas tentativas](/pt-br/documentacao/plataforma/workloads/certificate-manager/emissao-e-renovacao/#tempo-de-emissao-e-novas-tentativas). Para um certificado que fica `pending` ou passa a `failed`, consulte [Solucionar problemas de Workloads](/pt-br/documentacao/plataforma/workloads/solucao-de-problemas/#certificate-manager).

---

## Próximos passos

- [Emissão e renovação](/pt-br/documentacao/plataforma/workloads/certificate-manager/emissao-e-renovacao.md): Acompanhe um certificado pelos seus status, pelo cronograma de novas tentativas e pela renovação automática.
- [Aponte um domínio para um workload](/pt-br/documentacao/guias/plataforma/migracao/apontar-dominio-para-a-azion.md): Crie o registro DNS para um domínio apex ou no seu provedor e verifique se ele resolve.
- [Solicite um certificado Let's Encrypt com a API](/pt-br/documentacao/guias/seguranca-de-aplicacoes/tls-e-certificados/como-gerar-um-certificado-lets-encrypt-via-api.md): Solicite um certificado wildcard, ou qualquer conjunto de nomes, pela API.
- [Solucionar problemas de Workloads](/pt-br/documentacao/plataforma/workloads/solucao-de-problemas.md#certificate-manager): Descubra por que um certificado é recusado, fica pendente ou falha na renovação.
