# Certificates - Terraform Resources

import DocButton from '~/components/webkit/DocButton.vue';

<DocButton href="https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/digital_certificate" label="Ver no Terraform Registry" kind="secondary" size="medium" />

Gerencie certificados digitais SSL/TLS para proteger suas aplicações com HTTPS.

---


Os recursos de certificados permitem gerenciar certificados digitais para suas aplicações.

### Recursos Disponíveis

| Recurso | Descrição |
|---------|-----------|
| [`azion_digital_certificate`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/digital_certificate) | Certificados digitais |

### Data Sources Disponíveis

| Data Source | Descrição |
|--------------|-----------|
| [`azion_digital_certificates`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/digital_certificates) | Consulta certificados existentes |

---

## azion_digital_certificate

### Exemplo Básico

```hcl
resource "azion_digital_certificate" "example" {
  name = "meu-certificado"
  
  # Certificado e chave privada
  certificate = file("${path.module}/cert.pem")
  private_key = file("${path.module}/key.pem")
}
```

### Argumentos Principais

| Argumento | Tipo | Obrigatório | Descrição |
|-----------|------|--------------|-----------|
| `name` | string | Sim | Nome do certificado |
| `certificate` | string | Sim | Certificado SSL/TLS em formato PEM |
| `private_key` | string | Sim | Chave privada em formato PEM |

Para a lista completa de argumentos, consulte o [Terraform Registry](https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/digital_certificate).

### Atributos Exportados

| Atributo | Tipo | Descrição |
|----------|------|-----------|
| `id` | string | ID único do certificado |

---

## Exemplo Completo

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

provider "azion" {
  api_token = var.api_token
}

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

# Consultar certificados existentes
data "azion_digital_certificates" "all" {}

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

---

## Usando Variáveis para Certificados

Para evitar expor certificados no código, use variáveis:

```hcl
variable "ssl_certificate" {
  type        = string
  description = "Certificado SSL em formato PEM"
  sensitive   = true
}

variable "ssl_private_key" {
  type        = string
  description = "Chave privada SSL em formato PEM"
  sensitive   = true
}

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

---

## Recursos Relacionados

- [DNS](/pt-br/documentacao/produtos/terraform-provider/resources/dns/) - Gerencie zonas DNS
- [Security](/pt-br/documentacao/produtos/terraform-provider/resources/security/) - Gerencie firewall e WAF
- [Applications](/pt-br/documentacao/produtos/terraform-provider/resources/applications/) - Gerencie suas aplicações
- [Guia de Migração](/pt-br/documentacao/produtos/terraform-provider/migration-v3-to-v4/) - Migre da v1.x para v2.0