# Obtenha e registre um Digital Certificate

import Tabs from '~/components/tabs/Tabs'
import Code from '~/components/Code/Code.astro'

[Certificate Manager](/pt-br/documentacao/produtos/secure/firewall/certificate-manager/) são essenciais para fornecer à sua infraestrutura confiabilidade e conformidade com as regulamentações de proteção de dados. Na Azion, você tem várias opções para proteger seus domínios com certificados TLS. Além de [registrar um certificado e chave privada](/pt-br/documentacao/produtos/guias/criar-certificado-digital/) que você já possui, você também pode [solicitar um certificado Let's Encrypt](/pt-br/documentacao/produtos/guias/como-gerar-um-certificado-lets-encrypt/) para o seu domínio.

Se você não possui um certificado, pode emitir uma solicitação por meio da Azion e enviá-la a uma autoridade em certificados. Este guia irá descrever como você pode gerar uma **Certificate Signing Request (CSR)** através da Azion.

Uma CSR é uma solicitação criptografada para uma autoridade certificadora, conhecida como Certificate Authority (CA), para a emissão de um certificado digital. Você pode fornecer à Azion os detalhes do seu negócio para gerar automaticamente a CSR para você. Depois de criado, você pode enviá-lo a qualquer CA de sua escolha. Eles revisarão sua solicitação e, se aprovada, emitirão um certificado autenticado. Você então pode registrar o certificado fornecido pela CA na Azion e associá-lo a um domínio.

---

## Passo 1. Crie um Certificate Singing Request (CSR)

<Tabs client:visible>
    <Fragment slot="tab.console">Console</Fragment>
    <Fragment slot="tab.api">API</Fragment>

<Fragment slot="panel.console">
1. Acesse o [Azion Console](/pt-br/documentacao/produtos/guias/como-acessar-o-azion-console/) > **Certificate Manager**.
2. Clique no botão **+ Digital Certificate**.
3. Dê um nome a seu CSR.
4. Selecione a opção **Request a certificate**.
5. Preencha as informações requisitadas.
    - **Subject Name**: o endereço do domínio primário que será vinculado ao certificado. Exemplo: `dominio.org`.
    - **Country/Region**: o código de país de duas letras onde sua organização está localizada. Exemplo: `BR` para Brazil.
    - **State/Province**: o estado ou província onde sua organização está localizada. Exemplo: `Distrito Federal`.
    - **City/Locality**: a cidade ou município onde sua organização está localizada. Exemplo: `Brasília`.
    - **Organization**: o nome da sua organização. Exemplo: `Nome da Empresa Inc`.
    - **Organization Unit**: o departamento ou entidade responsável pela gestão do certificado. Exemplo: `Departamento de TI`.
    - **Email**: o email do órgão responsável pela gestão do certificado. Exemplo: `ti@empresa.org`.
    - **Private Key Type**: lista de outros nomes ou registros para serem associados ao certificado como Subject Alternate Names (SAN). Separe cada SAN por uma nova linha. Exemplo: `dominio.net`.

:::note
Certifique-se de que o name e os SANs listados sejam iguais aos [domínios que você configurou com a Azion](/pt-br/documentacao/produtos/guias/configurar-dominio/). Isso evitará que ocorram erros quando você associar o certificado ao domínio.
:::

6. Clique no botão **Save**.
7. Copie o valor no campo **Certificate Singing Request (CSR)**.

</Fragment>

<Fragment slot="panel.api">
1. Execute a seguinte requisição `POST` no seu terminal, substituindo `[TOKEN VALUE]` pelo seu [personal token](/pt-br/documentacao/produtos/guias/personal-tokens/) e os placeholder com os dados desejados:

<Code lang="bash" code={`
curl --request POST \
  --url https://api.azion.com/v4/digital_certificates/csr \
  --header 'Accept: application/json' \
  --header 'Authorization: Token [TOKEN VALUE]' \
  --header 'Content-Type: application/json' \
  --data '{
    "name": "New CSR",
    "type": "edge_certificate",
    "key_algorithm": "rsa_2048",
    "active": true,
    "common_name": "domain.net",
    "alternative_names": [
      "www.domain.net",
      "mail.domain.net",
      "support.domain.net"
    ],
    "country": "US",
    "state": "Washington",
    "locality": "Seattle",
    "organization": "Example",
    "organization_unity": "IT",
    "email": "itdepartment@example.com"
  }'
`} />

| Chave | Descrição |
| --- | --- |
| `name` | Nome do CSR |
| `common_name` | Aceita uma string que deve conter o endereço do domínio principal que será vinculado ao certificado |
| `country` | Aceita uma string de dois caracteres que deve conter o código do país onde sua organização está baseada |
| `state` | Aceita uma string que deve conter o estado ou província onde sua organização está baseada |
| `locality` | Aceita uma string que deve conter a cidade ou condado onde sua organização está baseada |
| `organization` | Aceita uma string que deve conter o nome da sua organização |
| `organization_unit` | Aceita uma string que deve conter o departamento ou órgão responsável pela gestão do certificado |
| `email` | Aceita uma string que deve conter o email do órgão responsável pela gestão do certificado |
| `private_key_type` | Enum que deve conter o tipo de chave privada gerada. Aceita apenas o valor `rsa_2048` |
| `sans` | Aceita um array. Lista de outros nomes ou registros para serem associados ao certificado como SANs. *Opcional* |

2. Você irá receber uma resposta similar a esta:

<Code lang="json" code={`
{
    "results": {
        "id": <digital_certificate_id>,
        "name": "New CSR",
        "issuer": null,
        "subject_name": [],
        "validity": null,
        "status": "Pending",
        "certificate_type": "edge_certificate",
        "managed": false,
        "azion_information": "",
        "csr": "-----BEGIN CERTIFICATE REQUEST-----\nMIIDGTCCAgECAQAwgdMxEDAOBgNVBAoMB0V4YW1wbGUxCzAJBgNVBAsMAklUMRQw\nEgYDVQQDDAtleGFtcGxlOp5ldDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hp\nbmd0b24xEDAOBgNVBAcMB1NlYXR9uGUxJzAlBgkqhkiG9w0BCQEWGGl0ZGVwYXJ0\nbWVudEBleGFtcGxlLmNvbTE/MD0GA1UdEQw2d3d3LmV4YW1wbGUubmV0LCBtYWls\nLmV4YW1wbGUuuMV0LCBzdXBwb3J0LmV4YW1wbGUubmV0MIIBIjANBgkqhkiG9w0B\nAQEFAAOCAQ8AMIIBCgKCAQEAt4yjDFvBt4XZzhlOPsw5JTITbWLFBu9YwfJJReWk\nlNQrcO5Ao8gIvp2T3XVNwOGsVEtAcKbw/YvftkqXLl81Jo1sMKyoRG8MTauUF3G9\n7EoyNAJ3ddyUlDYiA1VPz//PrCJ0PNwG7C+yL40OW2AM7zduHTyCXWUKxsGJ3QW8\nf4ePje89x7AtSsqHz486mZ6g6xxcj9j8FcFx9LdaElMfnQ0Mekp7nkdcPul9hR/s\ngKkAOg7sXXf88NDTYc69bR99NTFj9iyBz53M7Uied7KPJjFrpmxKh5KT2TCEqFrQ\nyk3Trc9NHLCpw9M5AyOqgwcZYcEtiZP9xQu3nMzxFdBnSwIDAQABoAAwDQYJKoZI\nhvcNAQELBQADggEBABDUzbxE6s+1dOvBTV1j1wJlY4GciGFsRUG2TT9LS8Oh8XDP\nx1DJlL8yjxdC/otPZiH1H7sLVofz0E9esn+SN2ys22WV9ujWD88Wq+M6UtsAvti0\nxh5p5pX//xbdqadl18OgmZbyO3FoKZInFRIovndYyBdSK/csXj0O7GL3cRfufXNU\n+8DDOUJJR41RM+7KfGn1G1nsCpOVDjBjuNq0AjDPCK7ASC0suA6pZlzfic2gAIvI\nqvrMxcbOAg9rJRtXqNrD5YlV6thCeHqme1TZNoUC5k6CWdOKeez8W2ovni5ZivNn\nGrSOKksZHTF1GM6KmPm0eGcNV1/3+DynNJ4wbPA=\n-----END CERTIFICATE REQUEST-----\n",
        "certificate_content": null
    }
}
`} />

| Key | Description |
| --- | --- |
| `id` | ID do certificado digital |
| `issuer` | Armazena as informações sobre a CA que emitirá o certificado |
| `subject_name` | Array que lista os registros associados ao certificado e confirmados pela CA |
| `validity` | Data de validade do certificado |
| `status` | Enum que indica o status do certificado. Retorna `Pending` quando o certificado ainda não foi gerado pela CA. Retorna `Active` quando o certificado foi registrado com a Azion |
| `certificate_type` | Enum que indica o tipo do certificado. Para Certificados CSR são atribuídos o valor `edge_certificates` |
| `managed` | Booleano que indica se o certificado é gerenciado pela ferramenta de certificados da Azion. *Não aplicável a certificados CSR* |
| `azion_information` | String que atualiza o status dos certificados gerenciados pela ferramenta de certificados da Azion. *Não aplicável a certificados CSR* |
| `csr` | String que contém a solicitação de assinatura de certificado a ser submetida a uma CA para emissão. Inclui a sequência de escape `\n` que pode ser convertida para line feed ao ser submetido a uma CA |
| `certificate_content` | Chave que deve ser atualizada via PATCH com o certificado gerado pela CA |

3. Copie e armazene o valor **CSR** na propriedade `csr`.

</Fragment>

</Tabs>

---

## Passo 2. Envie CSR a uma Certificate Authority

Depois de gerar seu CSR com a Azion, o próximo passo é submetê-lo a uma Certificate Authority (CA). Isso pode ser feito online. Você precisará começar escolhendo uma CA que atenda às necessidades e padrões de sua organização. Algumas escolhas populares são:

- [DigiCert](https://www.digicert.com/)
- [GlobalSign](https://www.globalsign.com/)
- [IdenTrust](https://www.identrust.com/)

A CA escolhida validará as informações no CSR gerado contra um padrão acordado. Uma vez validado, a CA emitirá um certificado TLS para sua aplicação, que pode então ser registrado na Azion e associado a um domínio.

---

## Paso 3. Registre o certificado gerado com a Azion

Uma vez que você receber um certificado emitido pela sua CA, você deve associá-lo à entrada CSR que criou. Depois que seu certificado estiver ativo com a Azion, você poderá [associar o certificado a um domínio](/pt-br/documentacao/produtos/guias/criar-certificado-digital/#associar-certificado-a-um-domínio).

<Tabs client:visible>
    <Fragment slot="tab.console">Console</Fragment>
    <Fragment slot="tab.api">API</Fragment>

<Fragment slot="panel.console">
1. Acesse o [Azion Console](/pt-br/documentacao/produtos/guias/como-acessar-o-azion-console/) > **Certificate Manager**.
2. Selecione o CSR que você criou.
3. Cole o código do certificado, incluindo as tags de início e fim, no campo **Certificate**.
4. Clique no botão **Save**.
</Fragment>

<Fragment slot="panel.api">
1. Execute a seguinte requisição `PATCH` no seu terminal, substituindo `[TOKEN VALUE]` pelo seu [personal token](/pt-br/documentacao/produtos/guias/personal-tokens/), o `<digital_certificate_id>` pelo ID recebido na resposta anterior e o certificado na propriedade `certificate_content`: 

<Code lang="bash" code={`
curl --request PATCH \
  --url https://api.azion.com/v4/digital_certificates/certificates/<digital_certificate_id> \
  --header 'Accept: application/json' \
  --header 'Authorization: Token [TOKEN VALUE]' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "certificate": "-----BEGIN CERTIFICATE-----\nADgPIWMQBAKIAMSACGAgI3fGBMTHXI0bDTCIGIVCGuMgNAEGABQsBApCBqMJUwSx\nA2RFjv0gdbMhM0MA0hzAbAIHE53WMwwBMHpjwNwj35MzgNtTbIiywTMOWdcMWcje\gaBkDAkjQcGi0bB9WI0A1IdRjDA3bQlBXkqwWFOD4B2wwh3I2hMMVtu9YuYbNkBT\nAQEFAAOCAQ8AMIIBCgKCAQEAt25cziDBsHbZzZhy9BPLApPf9OmE67k9pr7VezsR\nkIw4trY2xtJXFB7itT1p7HxbLBoL5u8FGmMKssB+XTmztmgty43ogor1KSjUgfZg\nrpAqyXtrbSM5g+14c0VO9S0LkkePlHvul0UiblJj7K+gkvc6sZqXZY+TI1BPqeuO\ns9A4LLCUGziyNv0qJfIL5RZm07Yy35BEBTTxUWVL2msfaUH2uPM5XN5eFC7oKN0/\n3NuYIboRmyk+P7CDC99M8Mp/wOjiB+yVGZVTjeqGPI8nFWJl2waXkc54VvW84xQP\njwtid1v1KENK/ixMAAXi2cQ9gNRX+/USoneuWj5n4QUj6QIDAQABo1AwTjAdBgNV\nHQ4EFgQU2sDgtyYMDXvw79OhdvAFqcLmcwkwHwYDVR0jBBgwFoAU2sDgtyYMDXvw\n79OhdvAFqcLmcwkwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAKzCM\niG67IPwJK6MIJ31N734AofnjLf+fffxNtfYmH0XGORHPYUxCxsLxXiSFgPvubWh+\nLahvmz0plDObtDb8DnqbDP8OnxKxBIsNT1WJdlS9dgB4+0YOhmpfQXM3nDuP06v7\nm+fnK8bF6lW0jwIA87/u5b/RVOz1htMNLoF8BvLi67ODLTv5oZ6Wwhf1tNADmSHz3l\n6ra9d8oa6jK1fe2/5A7LY41acjbbNrLbFDYP7hcx02TmCfSMut+ysaZ/blay4Sbb\nwNlt92KhJw07UEKgXXbgyXGoFQkU8V+r2AZcgt0XM9jvwTc01Sbq/gegd2GMAj3x\nrTwkn5UNzFs56FCgNg==\n-----END CERTIFICATE-----"
  }'
`} />

:::caution[atenção]
Line feeds devem ser substituidos por sequências de escape (`\n`).
:::

2. Você deverá receber uma resposta com os dados atualizados e o status `Active`:

<Code lang="json" code={`
{
    "results": {
        "id": <digital_certificate_id>,
        "name": "New CSR",
        "issuer": null,
        "subject_name": [],
        "validity": null,
        "status": "Active",
        "certificate_type": "edge_certificate",
        "managed": false,
        "azion_information": "",
        "csr": "-----BEGIN CERTIFICATE REQUEST-----\nMIIDGTCCAgECAQAwgdMxEDAOBgNVBAoMB0V4YW1wbGUxCzAJBgNVBAsMAklUMRQw\nEgYDVQQDDAtleGFtcGxlOp5ldDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hp\nbmd0b24xEDAOBgNVBAcMB1NlYXR9uGUxJzAlBgkqhkiG9w0BCQEWGGl0ZGVwYXJ0\nbWVudEBleGFtcGxlLmNvbTE/MD0GA1UdEQw2d3d3LmV4YW1wbGUubmV0LCBtYWls\nLmV4YW1wbGUuuMV0LCBzdXBwb3J0LmV4YW1wbGUubmV0MIIBIjANBgkqhkiG9w0B\nAQEFAAOCAQ8AMIIBCgKCAQEAt4yjDFvBt4XZzhlOPsw5JTITbWLFBu9YwfJJReWk\nlNQrcO5Ao8gIvp2T3XVNwOGsVEtAcKbw/YvftkqXLl81Jo1sMKyoRG8MTauUF3G9\n7EoyNAJ3ddyUlDYiA1VPz//PrCJ0PNwG7C+yL40OW2AM7zduHTyCXWUKxsGJ3QW8\nf4ePje89x7AtSsqHz486mZ6g6xxcj9j8FcFx9LdaElMfnQ0Mekp7nkdcPul9hR/s\ngKkAOg7sXXf88NDTYc69bR99NTFj9iyBz53M7Uied7KPJjFrpmxKh5KT2TCEqFrQ\nyk3Trc9NHLCpw9M5AyOqgwcZYcEtiZP9xQu3nMzxFdBnSwIDAQABoAAwDQYJKoZI\nhvcNAQELBQADggEBABDUzbxE6s+1dOvBTV1j1wJlY4GciGFsRUG2TT9LS8Oh8XDP\nx1DJlL8yjxdC/otPZiH1H7sLVofz0E9esn+SN2ys22WV9ujWD88Wq+M6UtsAvti0\nxh5p5pX//xbdqadl18OgmZbyO3FoKZInFRIovndYyBdSK/csXj0O7GL3cRfufXNU\n+8DDOUJJR41RM+7KfGn1G1nsCpOVDjBjuNq0AjDPCK7ASC0suA6pZlzfic2gAIvI\nqvrMxcbOAg9rJRtXqNrD5YlV6thCeHqme1TZNoUC5k6CWdOKeez8W2ovni5ZivNn\nGrSOKksZHTF1GM6KmPm0eGcNV1/3+DynNJ4wbPA=\n-----END CERTIFICATE REQUEST-----\n",
        "certificate_content": "-----BEGIN CERTIFICATE-----\nADgPIWMQBAKIAMSACGAgI3fGBMTHXI0bDTCIGIVCGuMgNAEGABQsBApCBqMJUwSx\nA2RFjv0gdbMhM0MA0hzAbAIHE53WMwwBMHpjwNwj35MzgNtTbIiywTMOWdcMWcje\gaBkDAkjQcGi0bB9WI0A1IdRjDA3bQlBXkqwWFOD4B2wwh3I2hMMVtu9YuYbNkBT\nAQEFAAOCAQ8AMIIBCgKCAQEAt25cziDBsHbZzZhy9BPLApPf9OmE67k9pr7VezsR\nkIw4trY2xtJXFB7itT1p7HxbLBoL5u8FGmMKssB+XTmztmgty43ogor1KSjUgfZg\nrpAqyXtrbSM5g+14c0VO9S0LkkePlHvul0UiblJj7K+gkvc6sZqXZY+TI1BPqeuO\ns9A4LLCUGziyNv0qJfIL5RZm07Yy35BEBTTxUWVL2msfaUH2uPM5XN5eFC7oKN0/\n3NuYIboRmyk+P7CDC99M8Mp/wOjiB+yVGZVTjeqGPI8nFWJl2waXkc54VvW84xQP\njwtid1v1KENK/ixMAAXi2cQ9gNRX+/USoneuWj5n4QUj6QIDAQABo1AwTjAdBgNV\nHQ4EFgQU2sDgtyYMDXvw79OhdvAFqcLmcwkwHwYDVR0jBBgwFoAU2sDgtyYMDXvw\n79OhdvAFqcLmcwkwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAKzCM\niG67IPwJK6MIJ31N734AofnjLf+fffxNtfYmH0XGORHPYUxCxsLxXiSFgPvubWh+\nLahvmz0plDObtDb8DnqbDP8OnxKxBIsNT1WJdlS9dgB4+0YOhmpfQXM3nDuP06v7\nm+fnK8bF6lW0jwIA87/u5b/RVOz1htMNLoF8BvLi67ODLTv5oZ6Wwhf1tNADmSHz3l\n6ra9d8oa6jK1fe2/5A7LY41acjbbNrLbFDYP7hcx02TmCfSMut+ysaZ/blay4Sbb\nwNlt92KhJw07UEKgXXbgyXGoFQkU8V+r2AZcgt0XM9jvwTc01Sbq/gegd2GMAj3x\nrTwkn5UNzFs56FCgNg==\n-----END CERTIFICATE-----"
    }
}
`} />

:::tip
Confira a [documentação da API da Azion](https://api.azion.com/) para saber mais sobre o que a API da Azion pode oferecer.
:::
</Fragment>

</Tabs>
---