---
name: azion-envie-um-certificado-digital
description: >-
  Envie um certificado de servidor, ou crie uma CSR para a sua autoridade certificadora assinar, e vincule o certificado a um workload.
---

# Envie um certificado digital

Você pode adicionar um certificado que uma autoridade certificadora (CA) emitiu para o seu domínio ao [Certificate Manager](/pt-br/documentacao/plataforma/workloads/#certificate-manager) e vinculá-lo a um [workload](/pt-br/documentacao/plataforma/workloads/), pelo Azion Console, pela [Azion CLI](/pt-br/documentacao/devtools/cli/) ou pela API. Para um certificado que a Azion solicita ao Let's Encrypt e renova, consulte [Solicite um certificado Let's Encrypt](/pt-br/documentacao/guias/seguranca-de-aplicacoes/tls-e-certificados/como-gerar-um-certificado-lets-encrypt/). Para o certificado de CA confiável que verifica certificados de cliente, consulte [Configure mTLS em um workload](/pt-br/documentacao/guias/seguranca-de-aplicacoes/tls-e-certificados/associar-um-certificado-mtls/).

Um certificado de servidor cobre os hostnames que um workload atende por HTTPS. Você obtém um de duas formas: você envia um certificado com a sua chave privada, ou Certificate Manager cria uma solicitação de assinatura de certificado (CSR) e guarda a chave privada enquanto a sua CA assina o certificado. Em ambos os casos, um workload usa o certificado apenas depois que o seu campo `tls.certificate` o nomeia, e o certificado fica como `inactive` até lá.

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 que lista o seu domínio nos seus domínios. Para adicionar o domínio, consulte [Adicione um domínio a um workload](/pt-br/documentacao/guias/plataforma/migracao/configurar-dominio/).
- Para enviar um certificado: o certificado em formato PEM e a sua chave privada, sem senha. Chaves RSA 2048 e chaves P-256 são aceitas.
- Para criar uma CSR: um domínio que a sua conta tem permissão para usar.

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

---

## Envie um certificado de servidor

Certificate Manager armazena o certificado com a sua chave privada e nunca devolve a chave privada depois disso. Certificados intermediários são aceitos junto com o certificado.

**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. **Abra a página Create Digital Certificate**

3. **Escolha o preset Server Certificate**

   Selecione **Server Certificate**.

4. **Dê um nome ao certificado**

   Em **Name**, insira um nome, como `my-certificate`.

5. **Cole o certificado**

   Em **Certificate**, cole o certificado, incluindo as linhas `-----BEGIN CERTIFICATE-----` e `-----END CERTIFICATE-----`.

6. **Cole a chave privada**

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

7. **Crie o certificado**

   Selecione **Create**.

O certificado aparece em **Certificate Manager** como um **TLS Certificate**.

**CLI**

Para enviar o certificado com a Azion CLI, passe o arquivo do certificado e o arquivo da chave privada:

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

O comando imprime o ID do novo certificado:

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

Para confirmar o envio, liste os seus certificados:

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

Este trecho da saída mostra o certificado como `inactive`, porque nenhum workload o usa ainda:

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

**API**

Para enviar o certificado com a API, envie uma requisição `POST` ao endpoint de certificados. Escreva cada quebra de linha do certificado e da chave privada como `\n`, para que cada valor seja uma única string JSON contínua:

```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",
  "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 `201` com o novo certificado e o seu `id`. O certificado existe com `type` definido como `edge_certificate` e `status` definido como `inactive`.

Uma chave privada que a API não consegue ler é recusada com `The provided private key is invalid. Please check the key and try again.` Envie a chave que corresponde ao certificado, em formato PEM e sem senha.

---

## Crie uma solicitação de assinatura de certificado

Uma CSR permite que a sua própria CA assine o certificado enquanto Certificate Manager gera e guarda a chave privada. Nomeie os hostnames que o workload lista nos seus domínios. A API aceita um certificado cujos nomes não correspondem a esses domínios, então ela não detecta a divergência por você.

**Console**

Os presets da página **Create Digital Certificate** não incluem uma CSR. Crie a CSR primeiro com a Azion CLI ou com a API.

Para copiar a solicitação no Azion Console:

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

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

2. **Abra a entrada da CSR**

   Selecione a entrada que a CSR criou. A página **Edit Digital Certificate** dela abre.

3. **Copie a solicitação**

   Em **Certificate Signing Request (CSR)**, selecione **Copy**.

Azion Console mostra "Successfully copied!", e a solicitação está pronta para ser enviada à sua CA.

**CLI**

Para criar a CSR com a Azion CLI, passe os hostnames e os dados da sua organização. `--alternative-names` recebe uma lista separada por vírgulas, e `--key-algorithm` recebe `rsa_2048`, `rsa_4096` ou `ecc_384`:

```bash
azion create csr --name my-csr \
  --common-name example.com \
  --alternative-names "www.example.com" \
  --country US --state California --locality "San Francisco" \
  --organization "Example Corp" --organization-unity IT \
  --email admin@example.com \
  --key-algorithm rsa_2048
```

O comando cria uma entrada de certificado que guarda a solicitação no seu campo `csr`. A entrada fica como `pending` até que você adicione o certificado que a sua CA assinar.

Para ler a solicitação, encontre o ID da entrada com `azion list digital-certificate --details` e depois descreva a entrada:

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

O campo `csr` da saída guarda a solicitação, com cada quebra de linha escrita como `\n`. Converta essas sequências em quebras de linha antes de enviar a solicitação à sua CA.

**API**

Para criar a CSR com a API, envie uma requisição `POST` ao endpoint de CSR. `key_algorithm` recebe `rsa_2048`, `rsa_4096` ou `ecc_384`:

```bash
curl --request POST \
  --url https://api.azion.com/v4/workspace/tls/csr \
  --header 'Accept: application/json' \
  --header 'Authorization: Token [TOKEN VALUE]' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "my-csr",
  "common_name": "example.com",
  "alternative_names": ["www.example.com"],
  "country": "US",
  "state": "California",
  "locality": "San Francisco",
  "organization": "Example Corp",
  "organization_unity": "IT",
  "email": "admin@example.com",
  "key_algorithm": "rsa_2048"
}'
```

A API responde `201` com a nova entrada de certificado e o seu `id`. O campo `csr` da entrada guarda a solicitação, com cada quebra de linha escrita como `\n`. Converta essas sequências em quebras de linha antes de enviar a solicitação à sua CA. A entrada fica como `pending` até que você adicione o certificado assinado.

Uma solicitação que nomeia um hostname em um domínio para o qual a sua conta não tem permissão é recusada com `This account cannot use certain common or alternative names because it does not have permission for their domain names.` Para o significado de cada campo da CSR, consulte [Certificados](/pt-br/documentacao/plataforma/workloads/certificate-manager/certificados/#solicitacoes-de-assinatura-de-certificado).

Envie a solicitação à CA da sua escolha, como DigiCert, GlobalSign ou IdenTrust. A CA valida os dados da solicitação e, depois de aprová-los, emite o certificado assinado.

---

## Adicione o certificado assinado à entrada da CSR

O certificado que a sua CA assina completa a entrada que a solicitação de assinatura de certificado (CSR) criou. Adicione-o no Azion Console ou com a API, em formato PEM, incluindo as linhas `-----BEGIN CERTIFICATE-----` e `-----END CERTIFICATE-----`.

**Console**

Para adicionar o certificado assinado no Azion Console:

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

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

2. **Abra a entrada da CSR**

   Selecione a entrada que a CSR criou. A página **Edit Digital Certificate** dela abre.

3. **Cole o certificado assinado**

   Em **Certificate**, cole o certificado que a sua CA assinou.

4. **Salve a entrada**

   Selecione **Save**.

A entrada guarda o certificado assinado, e você pode vinculá-lo a um workload.

**API**

Para adicionar o certificado assinado com a API, envie uma requisição `PATCH` à entrada, com o certificado em `certificate`. Escreva cada quebra de linha como `\n`:

```bash
curl --request PATCH \
  --url https://api.azion.com/v4/workspace/tls/certificates/<certificate-id> \
  --header 'Accept: application/json' \
  --header 'Authorization: Token [TOKEN VALUE]' \
  --header 'Content-Type: application/json' \
  --data '{
  "certificate": "-----BEGIN CERTIFICATE-----\n<certificate-body>\n-----END CERTIFICATE-----\n"
}'
```

A API responde `200`. A entrada guarda o certificado assinado, e você pode vinculá-lo a um workload.

---

## Vincule o certificado ao workload

Um workload usa um certificado de servidor depois que o seu campo `tls.certificate` guarda o ID do certificado. A partir dessa atualização, o certificado fica como `active`. Garanta que o certificado cubra os hostnames que o workload lista nos seus domínios: a API aceita um certificado cujos nomes não correspondem a eles.

**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 workload**

   Selecione o workload que lista o seu domínio. O formulário de edição dele abre.

3. **Ative o suporte a HTTPS**

   Em **Protocol Settings**, ative **HTTPS support** se estiver desativado.

4. **Selecione o certificado**

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

5. **Salve o workload**

   Selecione **Save**.

Azion Console mostra "Your workload has been updated".

**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`. Mantenha `ciphers` e `minimum_version` nos valores que o workload já tem. Este exemplo mostra os padrões de um novo workload:

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

Para confirmar o vínculo, liste os seus certificados:

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

Este trecho da saída mostra o certificado como `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    ...
```

**API**

Para vincular o certificado com a API, envie uma requisição `PATCH` ao workload com o objeto `tls`. Mantenha `ciphers` e `minimum_version` nos valores que o workload já tem. Este exemplo mostra os padrões de um novo workload:

```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 passa a nomear o certificado em `tls.certificate`.

Um certificado de CA confiável em `tls.certificate` é recusado com `Invalid certificate type, MUST be an Edge Certificate.` Para voltar ao certificado da própria Azion, selecione *Azion (SAN)* em **Digital Certificate**, ou envie `null` em `tls.certificate`.

Vincular um certificado é uma mudança no workload, que leva vários minutos para chegar a toda a infraestrutura distribuída da Azion. Enquanto isso, as requisições podem receber a configuração antiga ou a nova. Para erros de certificado e as suas correções, consulte [Solucionar problemas de Workloads](/pt-br/documentacao/plataforma/workloads/solucao-de-problemas/#certificate-manager).

---

## Substitua um certificado antes que ele expire

Um certificado que você envia não se renova sozinho e, depois que a sua data de `validity` passa, ele deixa de proteger o tráfego. Para substituí-lo, envie o novo certificado como descreve Envie um certificado de servidor e depois vincule-o como descreve Vincule o certificado ao workload. A entrada antiga fica como `inactive` quando nenhum workload a nomeia. Exclua-a depois que o novo certificado estiver `active` e a mudança tiver se propagado.

Para saber por que trocar enquanto o certificado antigo ainda é válido, consulte [Boas práticas de Workloads](/pt-br/documentacao/plataforma/workloads/boas-praticas/#certificate-manager).

---

## 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 e renovar um certificado para o seu domínio em vez de enviar um.
- [Configure mTLS em um workload](/pt-br/documentacao/guias/seguranca-de-aplicacoes/tls-e-certificados/associar-um-certificado-mtls.md): Envie um certificado de CA confiável e exija certificados de cliente no workload.
- [Certificados](/pt-br/documentacao/plataforma/workloads/certificate-manager/certificados.md): Consulte os campos de certificado, os algoritmos de chave, os status e os erros que a API retorna.
- [Solucionar problemas de Workloads](/pt-br/documentacao/plataforma/workloads/solucao-de-problemas.md): Encontre a causa de um erro de certificado e a correção para ele.
