# Recursos de certificados

[Ver no Terraform Registry](https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/digital_certificate)

Um certificado digital é o par de certificado SSL/TLS e chave privada que permite a uma aplicação responder por HTTPS. O Azion Terraform Provider gerencia os certificados do [Certificate Manager](/pt-br/documentacao/plataforma/workloads/certificate-manager/certificados/) com um recurso e os lê com dois data sources.

---

## Recursos de certificado

| Recurso                                                                                                                          | Descrição                               |
| -------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------- |
| [`azion_digital_certificate`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/digital_certificate) | Cria e gerencia um certificado digital. |

`azion_digital_certificate` exige três argumentos do tipo string: `name`, o nome do certificado; `certificate`, o certificado SSL/TLS em formato PEM; e `private_key`, a chave privada em formato PEM. Ele exporta `id`, uma string que contém o ID único do certificado. A página do recurso no Terraform Registry lista todos os argumentos.

---

## Data sources

| Data source                                                                                                                           | Descrição                    |
| ------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- |
| [`azion_digital_certificates`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/digital_certificates) | Lista certificados digitais. |
| [`azion_digital_certificate`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/digital_certificate)   | Lê um certificado digital.   |

---

## Exemplo

Esta configuração fixa a versão do provider, cria um certificado a partir de um arquivo de certificado e de um arquivo de chave privada na pasta `certificates` do diretório indicado por `path.module`, lê os certificados existentes e exibe o ID do certificado em um output. Ela lê o seu personal token da variável `api_token` que [Primeiros passos com o Azion Terraform Provider](/pt-br/documentacao/devtools/terraform/getting-started/) declara.

```hcl
terraform {
  required_providers {
    azion = {
      source  = "aziontech/azion"
      version = "2.0.0"
    }
  }
}

provider "azion" {
  api_token = var.api_token
}

# Create digital certificate
resource "azion_digital_certificate" "my_cert" {
  name        = "certificate-mydomain"
  certificate = file("${path.module}/certificates/mydomain.pem")
  private_key = file("${path.module}/certificates/mydomain-key.pem")
}

# Query existing certificates
data "azion_digital_certificates" "all" {}

output "certificate_id" {
  value = azion_digital_certificate.my_cert.id
}
```

Para manter o certificado e a chave privada fora do código da configuração, declare-os como variáveis sensíveis. Este bloco substitui o recurso `azion_digital_certificate` da configuração acima:

```hcl
variable "ssl_certificate" {
  type        = string
  description = "SSL certificate in PEM format"
  sensitive   = true
}

variable "ssl_private_key" {
  type        = string
  description = "SSL private key in PEM format"
  sensitive   = true
}

resource "azion_digital_certificate" "my_cert" {
  name        = "my-certificate"
  certificate = var.ssl_certificate
  private_key = var.ssl_private_key
}
```

Uma forma mais curta, com `cert.pem` e `key.pem` na raiz do diretório indicado por `path.module`, está em [Recursos e data sources](/pt-br/documentacao/devtools/terraform/examples/).

---

## Recursos relacionados

- [Recursos de Applications](/pt-br/documentacao/devtools/terraform/applications.md): Os recursos que gerenciam aplicações, as suas configurações de cache, regras, device groups e instâncias de functions.
- [Recursos de Edge DNS](/pt-br/documentacao/devtools/terraform/dns.md): Os recursos que gerenciam zonas DNS, os seus registros e as suas configurações de DNSSEC.
- [Recursos de segurança](/pt-br/documentacao/devtools/terraform/security.md): Os recursos que gerenciam firewalls, rule sets do WAF e network lists.
- [Migre do provider v1.x para o v2.0](/pt-br/documentacao/devtools/terraform/migration-v3-to-v4.md): As mudanças a fazer quando uma configuração ainda usa o provider v1.x e a API v3.
