DEV Community

Cover image for HTTPS in 4 lines of HCL
Mthulisi
Mthulisi

Posted on

HTTPS in 4 lines of HCL

HTTPS in 4 Lines of HCL — Terraform Template That Replaced My Console Click-Ops

> Week-3 of my 8-week IaC sprint: I turned HTTPS setup from 47 mouse clicks into 4 lines of HCL – and never looked back.


📸 Before (Console Click-Ops)

  • 47 clicks: ACM certificate request → Route 53 alias → CloudFront distro → 3 AM coffee spill.
  • Result: HTTPS works, but no Git history, no rollback, no sleep.

📸 After (4 Lines of HCL)


hcl
resource "aws_acm_certificate" "cert" {
  domain_name       = var.domain
  validation_method = "DNS"
  lifecycle {
    create_before_destroy = true
  }
}

resource "aws_route53_record" "cert_validation" {
  for_each = aws_acm_certificate.cert.domain_validation_options
  name     = each.value.resource_record_name
  type     = each.value.resource_record_type
  records  = [each.value.resource_record_value]
  ttl      = 60
}

resource "aws_acm_certificate_validation" "cert" {
  certificate_arn         = aws_acm_certificate.cert.arn
  validation_record_fqdns = [for record in aws_route53_record.cert_validation : record.fqdn]
}

resource "aws_cloudfront_distribution" "cdn" {
  # … (truncated for brevity – full repo below)
}



[](https://dev.to/mthulisi28/https-in-4-lines-of-hcl-terraform-template-that-replaced-my-console-click-ops)

**Key Takeaway**
If you’re still clicking through ACM + Route 53, you’re doing it wrong.
Template it once, sleep forever.

🔗 Repo & Badge
Full template: Week-3 HTTPS-by-Code
Badge: Week-3 HTTPS-by-Code PNG (drop into repo README).
Enter fullscreen mode Exit fullscreen mode

Top comments (0)