# Primeiros passos com Certificate Manager

Este guia orienta você a vincular o seu primeiro certificado próprio a um [workload](/pt-br/documentacao/plataforma/workloads/) com [Certificate Manager](/pt-br/documentacao/plataforma/workloads/#certificate-manager).

- Envie um certificado de servidor e a chave privada dele ao Certificate Manager.
- Vincule o certificado ao seu workload.
- Confirme que Certificate Manager informa o certificado como ativo.

Três objetos participam, e cada um se liga ao seguinte:

1. O **certificado** é um certificado de servidor que você envia ao Certificate Manager com a chave privada dele. A API o armazena com `type` definido como `edge_certificate`. O status dele fica `inactive` até que um workload o use.
2. O **workload** nomeia o certificado no campo `tls.certificate`. Enquanto esse campo for `null`, o workload usa o certificado SAN da Azion.
3. Os **domínios** do workload são os hostnames que o certificado precisa cobrir. A API não compara os nomes do certificado com os domínios, então um certificado que não os cobre ainda é aceito.

Um certificado enviado não protege nenhum tráfego até que um workload o nomeie. Um workload sem nenhum certificado seu mantém o certificado SAN da Azion, que cobre somente o workload domain e o Azion Custom Domain. Este guia altera somente as configurações de `tls` do workload e mantém os domínios, as portas e o deployment dele como estão.

Para que a Azion solicite um certificado ao Let's Encrypt e o renove por você, consulte [Solicite um certificado Let's Encrypt](/pt-br/documentacao/guias/seguranca-de-aplicacoes/tls-e-certificados/como-gerar-um-certificado-lets-encrypt/). O campo **Digital Certificate** do workload também oferece os presets do Let's Encrypt, descritos em [Certificados](/pt-br/documentacao/plataforma/workloads/certificate-manager/certificados/#certificado-lets-encrypt).

---

Selecione a interface que você usa. Os pré-requisitos e cada etapa desta página seguem essa escolha.

## Pré-requisitos

- Uma conta Azion. Para criar uma, consulte [Criar uma conta](/pt-br/documentacao/fundamentos/criar-uma-conta/).
- Um workload que lista o seu domínio nos domínios dele. Para adicionar um domínio, consulte [Adicione um domínio a um workload](/pt-br/documentacao/guias/plataforma/migracao/configurar-dominio/).
- Um certificado em formato PEM que cobre o seu domínio, com a chave privada dele, também em PEM e sem passphrase. Chaves RSA 2048 e chaves P-256 são aceitas.

**Console**

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

**CLI**

- [Azion CLI](/pt-br/documentacao/devtools/cli/) instalada e autorizada.
- O certificado e a chave privada salvos como arquivos, como `server.pem` e `server.key`.
- O ID do seu workload.

**API**

- Um personal token e `curl`. Para criar um token, consulte [Tokens pessoais](/pt-br/documentacao/fundamentos/personal-tokens/).
- O ID do seu workload.

---

## Envie o certificado

Um certificado de servidor contém o certificado e a chave privada dele. Depois de salva, a chave privada não pode ser lida de volta pelo Azion Console nem pela API. Você pode enviar o certificado sozinho ou com os certificados intermediários dele.

**Console**

Para enviar o certificado no Azion Console:

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

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

2. **Inicie um certificado**

   Selecione **Create Digital Certificate**. A página **Create Digital Certificate** abre.

3. **Selecione o preset Server Certificate**

4. **Nomeie o certificado**

   Em **Name**, digite um nome para o certificado, como `my-certificate`.

5. **Cole o certificado**

   Em **Certificate**, cole o certificado PEM, incluindo as linhas `-----BEGIN CERTIFICATE-----` e `-----END CERTIFICATE-----`. O texto de ajuda diz "Intermediate certificates are accepted."

6. **Cole a chave privada**

   Em **Private Key**, cole a chave privada PEM, incluindo as linhas `-----BEGIN` e `-----END` dela.

7. **Selecione Create**

O certificado aparece na lista de **Certificate Manager** como **TLS Certificate**. Ele fica `inactive` até que um workload o use.

**CLI**

Para enviar o certificado com a Azion CLI, passe os caminhos dos dois arquivos PEM:

```bash
azion create digital-certificate --name my-certificate \
  --certificate server.pem --private-key server.key
```

O comando imprime o ID do certificado novo:

```text
Created Digital Certificate with ID <certificate-id>
```

Anote o ID para vincular o certificado ao seu workload. Liste os certificados da sua conta:

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

A saída mostra o seu certificado com o tipo `edge_certificate` e o status `inactive`:

```text
ID                NAME            STATUS    ISSUER  VALIDITY                   TYPE              MANAGED  LAST EDITOR   LAST MODIFIED
<certificate-id>  my-certificate  inactive          2026-01-31 12:00:00+00:00  edge_certificate  false    <your-email>  2026-01-01 12:00:00.000000 +0000 UTC
```

O certificado existe no Certificate Manager, e nenhum workload o usa ainda.

**API**

Para enviar o certificado com a API, envie uma requisição `POST` para o endpoint de certificados. `type` definido como `edge_certificate` faz dele um certificado de servidor. No corpo, `certificate` e `private_key` são strings JSON. Escreva cada um como uma única string contínua que mantém as linhas `-----BEGIN` e `-----END`, com cada quebra de linha escrita como `\n`. Substitua `[TOKEN VALUE]` pelo seu personal token:

```bash
curl --request POST \
  --url https://api.azion.com/v4/workspace/tls/certificates \
  --header 'Accept: application/json' \
  --header 'Authorization: Token [TOKEN VALUE]' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "my-certificate",
  "type": "edge_certificate",
  "certificate": "-----BEGIN CERTIFICATE-----\n<certificate-body>\n-----END CERTIFICATE-----\n",
  "private_key": "-----BEGIN PRIVATE KEY-----\n<private-key-body>\n-----END PRIVATE KEY-----\n"
}'
```

A API responde com `201` e retorna o certificado novo. Anote o `id` dele para vincular o certificado ao seu workload. O certificado existe no Certificate Manager, e nenhum workload o usa ainda.

---

## Vincule o certificado ao seu workload

Um workload usa um certificado de servidor somente quando o campo `tls.certificate` dele o nomeia. Antes de vincular o certificado, verifique se ele cobre os domínios do workload. A API aceita um certificado que não os cobre.

**Console**

Para vincular o certificado no Azion Console:

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

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

2. **Abra o seu workload**

   Selecione o seu workload. A página **Edit Workload** abre.

3. **Ative o suporte a HTTPS**

   Em **Protocol Settings**, ative **HTTPS support** se estiver desativado. **Digital Certificate** aparece somente enquanto ele estiver ativado.

4. **Selecione o seu certificado**

   Em **Digital Certificate**, selecione o seu certificado no grupo **My certificates**.

5. **Selecione Save**

Azion Console mostra a mensagem "Your workload has been updated". O workload nomeia o seu certificado em `tls.certificate`.

**CLI**

Para vincular o certificado com a Azion CLI, salve o JSON abaixo como `tls.json`. Substitua `<workload-id>` e `<certificate-id>`:

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

O arquivo envia o objeto `tls` inteiro. Ele nomeia o seu certificado e mantém os padrões de um workload novo, o conjunto de cifras `7` e TLS 1.3 como versão mínima. Se o seu workload usa outros valores, envie esses valores. Envie o arquivo:

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

O comando imprime o ID do workload:

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

O workload nomeia o seu certificado em `tls.certificate`.

**API**

Para vincular o certificado com a API, envie uma requisição `PATCH` para o seu workload com o objeto `tls`. Ele nomeia o seu certificado e mantém os padrões de um workload novo, o conjunto de cifras `7` e TLS 1.3 como versão mínima. Se o seu workload usa outros valores, envie esses valores. Substitua `<workload-id>` e `<certificate-id>`:

```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, e o workload nomeia o seu certificado em `tls.certificate`.

---

## Confirme que o certificado está ativo

Certificate Manager informa um certificado como `active` assim que um workload o nomeia. O status mostra que o seu workload usa o certificado.

**Console**

Para confirmar o status no Azion Console:

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

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

2. **Encontre o seu certificado**

   Encontre o seu certificado na lista e confirme que o status dele é `active`. Um certificado `pending` mostra um ícone de aviso, e um certificado `failed` mostra um ícone de erro com o motivo.

O seu certificado está ativo, e o seu workload o usa.

**CLI**

Para confirmar o status com a Azion CLI, liste os certificados da sua conta:

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

A saída mostra o seu certificado com o status `active`:

```text
ID                NAME            STATUS  ISSUER  VALIDITY                   TYPE              MANAGED  ...
<certificate-id>  my-certificate  active          2026-01-31 12:00:00+00:00  edge_certificate  false    ...
```

O seu certificado está ativo, e o seu workload o usa.

**API**

Para confirmar o status com a API, envie uma requisição `GET` para o seu certificado. Substitua `<certificate-id>`:

```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 retorna o seu certificado. Estes são alguns dos campos dele, com `status` definido como `active`:

```json
{
 "id": <certificate-id>,
 "managed": false,
 "name": "my-certificate",
 "status": "active",
 "type": "edge_certificate"
}
```

O seu certificado está ativo, e o seu workload o usa.

Vincular um certificado é uma alteração no workload. A alteração leva vários minutos para chegar a toda a infraestrutura distribuída da Azion, sem duração garantida. Enquanto isso, as requisições podem encontrar a configuração antiga ou a nova. Para mais informações, consulte [Propagação](/pt-br/documentacao/plataforma/workloads/como-funciona/#propagacao).

---

## Próximos passos

- [Solicite um certificado Let's Encrypt](/pt-br/documentacao/guias/seguranca-de-aplicacoes/tls-e-certificados/como-gerar-um-certificado-lets-encrypt.md): Faça a Azion solicitar ao Let's Encrypt um certificado para o seu domínio e renová-lo por você.
- [Certificados](/pt-br/documentacao/plataforma/workloads/certificate-manager/certificados.md): Cada tipo de certificado, campo, status e erro, com os objetos CSR e CRL.
- [mTLS](/pt-br/documentacao/plataforma/workloads/mtls.md): Verifique certificados de cliente contra um certificado de CA confiável no seu workload.
- [Emissão e renovação](/pt-br/documentacao/plataforma/workloads/certificate-manager/emissao-e-renovacao.md): Como a Azion valida, emite e renova um certificado Let's Encrypt.
