# Como criar um certificado digital

> **Importante**
>
> Estamos lançando uma atualização significativa em nossa plataforma. Para saber mais sobre as mudanças e etapas de migração necessárias, consulte a [página de rollout da API v4](/pt-br/documentacao/fundamentos/api-v4-migration/).

Se sua aplicação roda em HTTPS, você precisa cadastrar um certificado digital com Azion [Certificate Manager](/pt-br/documentacao/plataforma/workloads/certificate-manager/certificados/). Um certificado digital TLS confirma a identidade de um site e protege as transferências de dados. Ele garante transações financeiras e qualquer troca de informações sensíveis, desde credenciais de login até dados pessoais.

Você também pode solicitar que um **certificado Let's Encrypt** seja gerado para o seu domínio através da Azion. O processo para solicitar um certificado Let's Encrypt é diferente dos certificados personalizados. Consulte [como gerar um certificado Let's Encrypt](/pt-br/documentacao/guias/seguranca-de-aplicacoes/tls-e-certificados/como-gerar-um-certificado-lets-encrypt/) para mais informações.

> **Nota**
>
> - A Azion agora oferece a flexibilidade de emitir e renovar [certificados Let’s Encrypt](/pt-br/documentacao/plataforma/workloads/certificate-manager/certificados/) via API utilizando tanto o desafio DNS-01 quanto o HTTP-01, permitindo que você escolha o método que melhor atenda às suas necessidades.
> - Não possui um certificado digital? Consulte o guia sobre [Como obter e registrar um certificado digital com a Azion](/pt-br/documentacao/guias/seguranca-de-aplicacoes/tls-e-certificados/certificado-digital/).

Há instruções separadas para as configurações do [Domains legado](/pt-br/documentacao/plataforma/workloads/domains/) e para o novo produto [Workloads](/pt-br/documentacao/plataforma/workloads/).

> **Dica**
>
> Se você não tem certeza de quais passos se aplicam à sua conta, consulte [o guia Verifique a migração da sua conta para a API v4](/pt-br/documentacao/guias/seguranca-de-aplicacoes/acesso-e-compliance/verificar-migracao-conta/) para determinar se sua conta já foi migrada.

---

## Opção 1: Faça upload de certificado personalizado

**Console**

1. Acesse o [Azion Console](/pt-br/documentacao/guias/plataforma/conta-e-billing/como-acessar-o-azion-console/) > **Certificate Manager**.
2. Clique no botão **+ Digital Certificate**.
3. Nomeie seu certificado.
4. Selecione a opção **Import a server certificate**.
5. No campo **Certificate**, cole o certificado.
6. No campo **Private Key**, cole a chave privada.
7. Clique no botão **Save**.

**API**

1. Adquira o certificado X.509 de uma CA.
2. Substitua quebras de linha por `\n`, incluindo para os marcadores de início e fim, para transformar o certificado em uma string.
3. Faça o mesmo com a chave privada.
4. Execute o seguinte comando cURL no seu terminal, substituindo `[TOKEN VALUE]` pelo seu [personal token](/pt-br/documentacao/guias/plataforma/conta-e-billing/personal-tokens/) e adicionando seu certificado e chave privada aos campos:

```bash
curl --request POST   --url https://api.azion.com/v4/digital_certificates/certificates   --header 'Accept: application/json'   --header 'Authorization: Token [TOKEN VALUE]'   --header 'Content-Type: application/json'   --data '{
  "name": "CERT yourdomain.com",
  "certificate": "-----BEGIN CERTIFICATE-----
<your_private_key>
-----END CERTIFICATE-----",
  "private_key": "-----BEGIN RSA PRIVATE KEY-----
<your_private_key>
-----END RSA PRIVATE KEY-----",
  "type": "edge_certificate",
  "active": true
}'
```

| Chave         | Descrição                                                                 |
| ------------- | ------------------------------------------------------------------------- |
| `name`        | Define a string no valor como um nome da entrada do certificado na Azion. |
| `certificate` | Recebe seu certificado como um valor. Deve ser uma string contínua.       |
| `private_key` | Recebe sua chave privada como um valor. Deve ser uma string contínua.     |

Ao fazer o upload de seu certificado, você receberá uma resposta confirmando a sua criação:

```json
{
    "results": {
        "id": <digital_certificate_id>,
        "name": "CERT yourdomain.com",
        "issuer": "",
        "subject_name": [],
        "validity": "2028-03-24 20:09:00-03:00",
        "status": "Active",
        "certificate_type": "edge_certificate",
        "managed": false
    }
}
```

---

## Opção 2: Faça upload do Trusted CA para mTLS

**Console**

1. Acesse o [Azion Console](/pt-br/documentacao/guias/plataforma/conta-e-billing/como-acessar-o-azion-console/) > **Certificate Manager**.
2. Clique no botão **+ Digital Certificate**.
3. Nomeie seu certificado.
4. Selecione a opção **Import a Trusted CA certificate**.
5. No campo **Certificate**, cole o certificado.
6. Clique no botão **Save**.

**API**

1. Adquira um trusted certificate assinado pela sua CA.
2. Substitua qualquer quebra de linha por `\n`, incluindo para os marcadores de início e fim, para transformar o certificado em uma string.
3. Execute o seguinte comando cURL no seu terminal, substituindo `[TOKEN VALUE]` pelo seu [personal token](/pt-br/documentacao/guias/plataforma/conta-e-billing/personal-tokens/) e adicionando seu certificado aos campos:

```bash
curl --request POST   --url https://api.azion.com/v4/digital_certificates/certificates   --header 'Accept: application/json'   --header 'Authorization: Token [TOKEN VALUE]'   --header 'Content-Type: application/json'   --data '{
  "name": "TCA yourdomain.com",
  "certificate": "-----BEGIN CERTIFICATE-----
<your_private_key>
-----END CERTIFICATE-----",
  "type": "trusted_ca_certificate",
  "active": true
}'
```

| Chave              | Descrição                                                                                               |
| ------------------ | ------------------------------------------------------------------------------------------------------- |
| `name`             | Define a string no valor como um nome da entrada do certificado com Azion.                              |
| `certificate`      | Recebe seu certificado como um valor. Deve ser uma string contínua.                                     |
| `certificate_type` | Quando definido como `trusted_ca_certificate`, o endpoint não requer mais uma entrada de chave privada. |

Ao fazer o upload de seu Trusted CA, você receberá uma resposta com dados sobre o certificado:

```json
{
    "results": {
        "id": <digital_certificate_id>,
        "name": "TCA yourdomain.com",
        "issuer": "",
        "subject_name": [],
        "validity": "2028-03-24 20:09:00-03:00",
        "status": "Active",
        "certificate_type": "trusted_ca_certificate",
        "managed": false
    }
}
```

---

## Associe certificado a um domínio

Para associar seu certificado a um domínio Azion:

**Console - Workloads**

1. No canto superior esquerdo da página, abra o **Products menu**, representado por três linhas horizontais > **Workloads**.
2. Selecione o domínio desejado.
3. Em **Digital Certificate**, selecione o certificado que você criou nas etapas anteriores.
4. Certifique-se de que os domínios listados nos campos **Subdomain** e **Domain** sejam os mesmos do certificado emitido para o seu domínio.
5. Clique no botão **Save**.
6. Espere alguns minutos para que as alterações se propaguem.

Você pode acessar sua aplicação HTTPS e verificar as configurações de segurança usando seu navegador ou executar o seguinte comando OpenSSL, substituindo `seudominio.com` por um dos CNAMEs do domínio:

```bash
openssl s_client -showcerts -connect seudominio.com:443
```

**Console - Domains**

1. No canto superior esquerdo da página, abra o **Products menu**, representado por três linhas horizontais > **Domains**.
2. Selecione o domínio desejado.
3. Em **Digital Certificate**, selecione o certificado que você criou nas etapas anteriores.
4. Certifique-se de que os CNAMEs listados no campo **CNAME** sejam os mesmos do certificado emitido para o seu domínio.
5. Clique no botão **Save**.
6. Espere alguns minutos para que as alterações se propaguem.

Você pode acessar sua aplicação HTTPS e verificar as configurações de segurança usando seu navegador ou executar o seguinte comando OpenSSL, substituindo `seudominio.com` por um dos CNAMEs do domínio:

```bash
openssl s_client -showcerts -connect seudominio.com:443
```

**API v4**

1. Execute a seguinte requisição `GET` para obter o ID do seu workload:

```bash
curl --request GET   --url https://api.azion.com/v4/workspace/workloads   --header 'Accept: application/json'   --header 'Authorization: Token [TOKEN VALUE]'
```

2. Você receberá uma resposta semelhante a esta:

```json
  "results": [
    {
      "id": <workload_id>,
      "name": "My Workload",
      "active": true,
      "last_editor": "your-email@example.com",
      "last_modified": "2025-08-06T17:53:47.460211Z",
      "infrastructure": 1,
      "tls": {
        "certificate": null,
        "ciphers": 7,
        "minimum_version": "tls_1_3"
    },
    }
   ]
```

3. Localize o workload que você deseja associar ao certificado e copie o valor `workload_id` recebido na resposta.
4. Execute uma requisição `PATCH`, adicionando o `workload_id` como um caminho, para atualizar o campo `digital_certificate_id` com o id que você recebeu no processo de criação:

> **Opcional**
>
> Como mostrado no exemplo abaixo, se você ainda não atualizou o campo CNAME com seu domínio personalizado, certifique-se de adicionar o host e quaisquer CNAMEs para a aplicação que são protegidos pelo certificado. Isso será útil para quando você [apontar seu domínio](/pt-br/documentacao/guias/plataforma/migracao/apontar-dominio-para-a-azion/) ou [migrar sua resolução NS](/pt-br/documentacao/guias/plataforma/migracao/migrar-ns-para-a-azion/) para a Azion.

```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": <digital_certificate_id>
    },
    "domains": [
      "yourdomain.com"
    ]
  }'
```

5. Você deve receber uma resposta com os dados atualizados.
6. Aguarde alguns minutos para que as alterações propaguem para o edge. Em seguida, acesse sua aplicação HTTPS e verifique as configurações de segurança usando seu navegador ou execute o seguinte comando OpenSSL, substituindo `seudominio.com` por um dos CNAMEs do domínio:

```bash
openssl s_client -showcerts -connect seudominio.com:443
```

> **Dica**
>
> Confira a [documentação da API da Azion](https://api.azion.com/) para saber mais sobre todas as funcionalidades disponíveis via API.

**API v3**

1. Execute a seguinte requisição `GET` para obter o ID do seu domínio:

```bash
curl --location 'https://api.azionapi.net/domains' --header 'Accept: application/json; version=3' --header 'Authorization: Token [TOKEN VALUE]'
```

2. Você receberá uma resposta semelhante a esta:

```json
{
    ...
    "results": [
        {
            "id": <domain_id>,
            "name": "example.com CA1 DC0",
            "cnames": [],
            "cname_access_only": true,
            "digital_certificate_id": null,
            "edge_application_id": <edge_application_id>,
            "is_active": true,
            "domain_name": "xxxxxxxxxx.map.azionedge.net"
        }
    ]
}
```

3. Localize o domínio que você deseja associar ao certificado e copie o valor `domain_id` recebido na resposta.
4. Execute uma requisição `PATCH`, adicionando o `domain_id` como um caminho, para atualizar o campo `digital_certificate_id` com o id que você recebeu no processo de criação:

> **Opcional**
>
> Como mostrado no exemplo abaixo, se você ainda não atualizou o campo CNAME com seu domínio personalizado, certifique-se de adicionar o host e quaisquer CNAMEs para a aplicação que são protegidos pelo certificado. Isso será útil para quando você [apontar seu domínio](/pt-br/documentacao/guias/plataforma/migracao/apontar-dominio-para-a-azion/) ou [migrar sua resolução NS](/pt-br/documentacao/guias/plataforma/migracao/migrar-ns-para-a-azion/) para Azion.

```bash
curl --location --request PATCH 'https://api.azionapi.net/domains/<domain_id>' --header 'Accept: application/json; version=3' --header 'Authorization: Token [TOKEN VALUE]' --header 'Content-Type: application/json' --data '{
    "digital_certificate_id": <digital_certificate_id>,
    "cnames": [
        "seudominio.com"
    ]
}'
```

5. Você deve receber uma resposta com os dados atualizados.
6. Aguarde alguns minutos para que as alterações propaguem para o edge. Em seguida, acesse sua aplicação HTTPS e verifique as configurações de segurança usando seu navegador ou execute o seguinte comando OpenSSL, substituindo `seudominio.com` por um dos CNAMEs do domínio:

```bash
openssl s_client -showcerts -connect seudominio.com:443
```

> **Dica**
>
> Confira a [documentação da API da Azion](https://api.azion.com/v3) para saber mais sobre todas as funcionalidades disponíveis via API.
