# Azion CLI digital-certificate

Os comandos `digital-certificate` da Azion CLI criam, listam, descrevem, atualizam e excluem os [certificados](/pt-br/documentacao/plataforma/workloads/certificate-manager/certificados/) que Certificate Manager armazena para TLS. Um certificado é um certificado de servidor que você envia com a chave privada dele ou solicita à Let's Encrypt, ou um certificado de CA confiável que verifica certificados de cliente. Esses comandos armazenam o certificado e não o vinculam a um workload. As opções que todo comando aceita, como `--format`, `--out` e `-y`, estão em [Opções globais](/pt-br/documentacao/devtools/cli/globals/).

---

## Criar

`azion create digital-certificate` envia um certificado a partir de arquivos PEM, ou solicita um a uma autoridade certificadora quando você passa `--authority`:

```bash
azion create digital-certificate [flags]
```

| Flag                  | Curta | Tipo   | Padrão | Descrição                                                                                                                                                                                         |
| --------------------- | ----- | ------ | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--alternative-names` | —     | string | —      | Lista de Subject Alternative Names (SANs) do certificado solicitado, separados por vírgula.                                                                                                       |
| `--authority`         | —     | string | —      | Autoridade certificadora que emite o certificado, como `lets_encrypt`. Com ela, o comando solicita o certificado em vez de enviar um.                                                             |
| `--certificate`       | —     | string | —      | Caminho do arquivo do certificado, em formato PEM. Um caminho que não existe falha com `Error: Failed to read the certificate file: <path>`.                                                      |
| `--certificate-type`  | —     | string | —      | Tipo do certificado: `edge_certificate` para um certificado de servidor ou `trusted_ca_certificate` para um certificado de CA confiável. Sem ela, o certificado é criado como `edge_certificate`. |
| `--challenge`         | —     | string | —      | Método que resolve o desafio ACME de um certificado solicitado: `dns` ou `http`.                                                                                                                  |
| `--common-name`       | —     | string | —      | Common Name (CN) do certificado solicitado.                                                                                                                                                       |
| `--file`              | —     | string | —      | Caminho de um arquivo JSON com os atributos do certificado. Use `-` para ler o JSON da entrada padrão.                                                                                            |
| `--key-algorithm`     | —     | string | —      | Algoritmo de chave do certificado: `rsa_2048`, `rsa_4096` ou `ecc_384`. Sem ela, um certificado solicitado usa `ecc_384`.                                                                         |
| `--name`              | —     | string | —      | Nome do certificado.                                                                                                                                                                              |
| `--private-key`       | —     | string | —      | Caminho do arquivo da chave privada, em formato PEM. Sem ela, um certificado enviado é criado com status `pending`.                                                                               |

Este comando envia um certificado de servidor chamado `my-certificate` a partir de um arquivo de certificado e da chave privada dele:

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

O comando imprime o ID do certificado:

```text
Created Digital Certificate with ID 123477
```

Este comando solicita um certificado Let's Encrypt para `example.com`, validado pelo desafio DNS:

```bash
azion create digital-certificate --name my-lets-encrypt-certificate --authority lets_encrypt --challenge dns --common-name example.com
```

O comando imprime `Requested` em vez de `Created`:

```text
Requested Digital Certificate with ID 123479
```

Para saber o que cada desafio exige antes que a Let's Encrypt emita o certificado, consulte [Emissão e renovação](/pt-br/documentacao/plataforma/workloads/certificate-manager/emissao-e-renovacao/).

---

## Listar

`azion list digital-certificate` lista os certificados da sua conta, 50 por página:

```bash
azion list digital-certificate [flags]
```

| Flag          | Curta | Tipo   | Padrão | Descrição                                                                                                                        |
| ------------- | ----- | ------ | ------ | -------------------------------------------------------------------------------------------------------------------------------- |
| `--details`   | —     | —      | —      | Adiciona as colunas `ISSUER`, `VALIDITY`, `TYPE`, `MANAGED`, `LAST EDITOR` e `LAST MODIFIED` às colunas `ID`, `NAME` e `STATUS`. |
| `--filter`    | —     | string | —      | Nome pelo qual filtrar a lista.                                                                                                  |
| `--order-by`  | —     | string | —      | Campo pelo qual ordenar a lista.                                                                                                 |
| `--page`      | —     | int    | `1`    | Número da página a retornar.                                                                                                     |
| `--page-size` | —     | int    | `50`   | Número de certificados em cada página.                                                                                           |

Este comando lista os certificados da conta:

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

O comando imprime uma linha por certificado. O certificado enviado sem a chave privada dele aparece como `pending`:

```text
ID      NAME                         STATUS
123477  my-certificate               inactive
123478  my-ca-certificate            inactive
123479  my-lets-encrypt-certificate  inactive
123480  my-pending-certificate       pending
```

---

## Descrever

`azion describe digital-certificate` imprime as configurações e o status de um certificado:

```bash
azion describe digital-certificate [flags]
```

| Flag                       | Curta | Tipo | Padrão | Descrição                      |
| -------------------------- | ----- | ---- | ------ | ------------------------------ |
| `--digital-certificate-id` | —     | int  | —      | ID do certificado a descrever. |

Este comando descreve o certificado com ID `123477`:

```bash
azion describe digital-certificate --digital-certificate-id 123477
```

O comando imprime os atributos do certificado:

```text
ID:              123477
Name:            my-certificate
Issuer:          ""
Subject Names:   []
Validity:        "2026-01-31 12:00:00+00:00"
Type:            edge_certificate
Managed:         false
Status:          inactive
Status Detail:
Challenge:
Authority:
Key Algorithm:   rsa_2048
Active:          true
Last Editor:     you@example.com
Created At:      "2026-01-01T12:00:14.812268Z"
Last Modified:   "2026-01-01T12:00:14.812268Z"
Renewed At:      null
```

Com `--format json`, o comando imprime o objeto completo: `active`, `authority`, `certificate`, `challenge`, `created_at`, `csr`, `id`, `issuer`, `key_algorithm`, `last_editor`, `last_modified`, `managed`, `name`, `product_version`, `renewed_at`, `status`, `status_detail`, `subject_name`, `type` e `validity`. O campo `certificate` contém o texto PEM do certificado, e o objeto não traz nenhuma chave privada. Um certificado solicitado tem `managed` definido como `true`. Para saber o que cada status significa, consulte [Certificados](/pt-br/documentacao/plataforma/workloads/certificate-manager/certificados/#status).

---

## Atualizar

`azion update digital-certificate` altera o nome, os arquivos PEM ou as configurações de solicitação de um certificado:

```bash
azion update digital-certificate [flags]
```

| Flag                       | Curta | Tipo   | Padrão | Descrição                                                                                         |
| -------------------------- | ----- | ------ | ------ | ------------------------------------------------------------------------------------------------- |
| `--active`                 | —     | string | —      | Recebe `true` ou `false`. Define se o certificado está ativo.                                     |
| `--authority`              | —     | string | —      | Autoridade certificadora que emite o certificado gerenciado, como `lets_encrypt`.                 |
| `--certificate`            | —     | string | —      | Caminho do arquivo do certificado, em formato PEM.                                                |
| `--certificate-type`       | —     | string | —      | Tipo do certificado: `edge_certificate` ou `trusted_ca_certificate`.                              |
| `--challenge`              | —     | string | —      | Método que resolve o desafio ACME de um certificado solicitado: `dns` ou `http`.                  |
| `--digital-certificate-id` | —     | int    | —      | ID do certificado a atualizar.                                                                    |
| `--file`                   | —     | string | —      | Caminho de um arquivo JSON com os atributos a alterar. Use `-` para ler o JSON da entrada padrão. |
| `--key-algorithm`          | —     | string | —      | Algoritmo de chave do certificado: `rsa_2048`, `rsa_4096` ou `ecc_384`.                           |
| `--name`                   | —     | string | —      | Novo nome do certificado.                                                                         |
| `--private-key`            | —     | string | —      | Caminho do arquivo da chave privada, em formato PEM.                                              |

Este comando renomeia o certificado com ID `123477` para `my-certificate-renamed`:

```bash
azion update digital-certificate --digital-certificate-id 123477 --name my-certificate-renamed
```

O comando imprime o ID do certificado atualizado:

```text
Updated Digital Certificate with ID 123477
```

Um certificado criado sem a chave privada dele continua `pending`. Este comando envia o certificado e a chave privada dele, e completa o certificado com ID `123480`:

```bash
azion update digital-certificate --digital-certificate-id 123480 --certificate ./certs/cert.pem --private-key ./certs/key.pem
```

O comando imprime o ID do certificado atualizado, e o certificado passa a aparecer como `inactive`:

```text
Updated Digital Certificate with ID 123480
```

Um certificado ativo não pode ser desativado. Com `--active false`, o comando falha com este erro:

```text
Error: Failed to update the Digital Certificate: ["The active certificates cannot be deactivated, as doing so may lead to complications for active domains."]. Check your settings and try again. If the error persists, contact Azion support
```

---

## Excluir

`azion delete digital-certificate` exclui um certificado:

```bash
azion delete digital-certificate [flags]
```

| Flag                       | Curta | Tipo | Padrão | Descrição                    |
| -------------------------- | ----- | ---- | ------ | ---------------------------- |
| `--digital-certificate-id` | —     | int  | —      | ID do certificado a excluir. |

Este comando exclui o certificado com ID `123478`:

```bash
azion delete digital-certificate --digital-certificate-id 123478 -y
```

O comando confirma a exclusão:

```text
Digital Certificate 123478 was successfully deleted
```

Um ID que não existe falha com este erro:

```text
Error: Failed to delete the Digital Certificate: The given ID or API's endpoint doesn't exist or isn't available. Check that the identifying information is correct. Check your settings and try again. If the error persists, contact Azion support
```

---

## Usar um arquivo JSON

`azion create digital-certificate` e `azion update digital-certificate` leem os atributos do certificado de um arquivo JSON com `--file`.

Este arquivo cria um certificado de CA confiável chamado `my-ca-certificate`. O comando lê `name`, `type` e `certificate` do arquivo. O valor de `certificate` é o texto PEM do certificado como uma única string JSON, com cada quebra de linha escrita como `\n`:

```json
{
  "name": "my-ca-certificate",
  "type": "trusted_ca_certificate",
  "certificate": "<pem-certificate>"
}
```

Passe o arquivo para o comando de criação:

```bash
azion create digital-certificate --file dc-create.json
```

O comando imprime o ID do certificado:

```text
Created Digital Certificate with ID 123478
```

Na atualização, o arquivo pode trazer somente as chaves a alterar. Este arquivo renomeia o certificado, e o `type` dele continua `trusted_ca_certificate`:

```json
{
  "name": "my-ca-certificate-updated"
}
```

Passe o arquivo e o ID do certificado para o comando de atualização:

```bash
azion update digital-certificate --digital-certificate-id 123478 --file dc-update.json
```

O comando imprime o ID do certificado atualizado:

```text
Updated Digital Certificate with ID 123478
```

---

## Recursos relacionados

- [Opções globais](/pt-br/documentacao/devtools/cli/globals.md): As opções que todo comando aceita, como `--format`, `--out` e `-y`.
- [Certificados](/pt-br/documentacao/plataforma/workloads/certificate-manager/certificados.md): Cada campo, status e algoritmo de chave de um certificado armazenado.
- [Azion CLI csr](/pt-br/documentacao/devtools/cli/recursos/csr.md): Os comandos que criam uma solicitação de assinatura de certificado, que compartilha o espaço de IDs dos certificados.
- [Azion CLI workload](/pt-br/documentacao/devtools/cli/recursos/workload.md): Os comandos que gerenciam o workload que serve um certificado por TLS.
