Masdika Loading..
Masdika.ID

DevOps Engineer

Cloud Engineer

System Administrator

  • Home
  • Portfolio
  • Services
  • Resume
  • Skills
  • Blog
  • Contact
Masdika.ID

DevOps Engineer

Cloud Engineer

System Administrator

Download CV

Recent Posts

  • Dari Laptop Bekas Jadi Server Pribadi: Cara Membangun Home Server Murah Menggunakan ISP MyRepublic dengan Public IP
  • Pembuatan Subnet dan Alokasi IP Address pada Amazon Web Service VPC
  • Instalasi dan Konfigurasi AWS CLI pada EC2 (Lab Guide)
  • Membangun Arsitektur Web + Database Highly Available di AWS (RDS Multi-AZ)
  • Cara Reset Password OpenBSD di Proxmox via VNC

Recent Comments

  1. Alif on Jangan Gunakan latest Tag pada Docker Images! Ini Alasannya
  2. Sahrull on Panduan Lengkap Anti-DDoS: Installasi Iptables, Hardening, dan Cloudflare Proxy
  3. VSTRA on Cara Cerdas Menguasai Kubernetes (K8s): Panduan Lengkap Orkestrasi Kontainer untuk Developer Modern
  4. Rikiy on Cara Mudah Deploy Website Node.js Menggunakan Docker
  5. Masdika.BIZ.ID on Disaster Recovery Cluster (DRC) WordPress dengan MariaDB Galera dan Load Balancer Caddy

Categories

  • Tutorial

Masdika.ID

  • About
  • Terms & Conditions
  • Privacy Policy
BLOG POST

Tutorial Lengkap: Membuat Cloudflare API Token & Menggunakannya di Kubernetes dengan cert-manager

August 25, 2025 Tutorial by Masdika.ID
Tutorial Lengkap: Membuat Cloudflare API Token & Menggunakannya di Kubernetes dengan cert-manager

Buat kamu yang baru belajar Kubernetes dan ingin mengamankan domain dengan Let’s Encrypt SSL melalui Cloudflare DNS, ikuti panduan step by step ini. Dijamin gampang dipahami, bahkan untuk pemula! 😉

🔑 1. Membuat Cloudflare API Token

  1. Masuk ke dashboard Cloudflare → https://dash.cloudflare.com
  2. Pilih menu My Profile → API Tokens
  3. Klik Create Token
  4. Pilih template Edit zone DNS → Use template
  5. Atur permission:
    • Zone → DNS → Edit ✅
  6. Atur zone (domain) yang boleh diakses, contoh: masdika.biz.id
  7. Klik Continue to Summary → Create Token
  8. Salin token yang muncul → simpan aman (misalnya 9Lxxr8Gq4Zts...)

👉 Token ini yang nanti akan dipakai di Kubernetes sebagai Secret.

📦 2. Deploy cert-manager di Kubernetes

Pastikan cluster Kubernetes sudah jalan. Deploy cert-manager versi terbaru:

kubectl create namespace cert-manager
kubectl apply -n cert-manager -f https://github.com/cert-manager/cert-manager/releases/latest/download/cert-manager.yaml

Tunggu sampai pod cert-manager Running:

kubectl get pods -n cert-manager

🗝 3. Membuat Secret untuk API Token Cloudflare

Buat file cloudflare-secret.yaml:

apiVersion: v1
kind: Secret
metadata:
  name: cloudflare-api-token-secret
  namespace: cert-manager
stringData:
  api-token: "ISI_API_TOKEN_CLOUDFLARE"

Apply ke cluster:

kubectl apply -f cloudflare-secret.yaml

🌍 4. Membuat ClusterIssuer untuk Let’s Encrypt

File: cluster-issuer.yaml

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
spec:
  acme:
    email: admin@masdika.biz.id   # ganti dengan email kamu
    server: https://acme-v02.api.letsencrypt.org/directory
    privateKeySecretRef:
      name: letsencrypt-prod-private-key
    solvers:
    - dns01:
        cloudflare:
          apiTokenSecretRef:
            name: cloudflare-api-token-secret
            key: api-token

Apply:

kubectl apply -f cluster-issuer.yaml

Cek status ClusterIssuer:

kubectl get clusterissuer letsencrypt-prod -o wide

Kalau READY=True berarti sukses 🎉

🔒 5. Uji dengan Certificate

Contoh file certificate.yaml:

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: masdika-cert
  namespace: default
spec:
  secretName: masdika-tls
  issuerRef:
    name: letsencrypt-prod
    kind: ClusterIssuer
  dnsNames:
  - masdika.biz.id
  - www.masdika.biz.id

Apply:

kubectl apply -f certificate.yaml

Cek status certificate:

kubectl describe certificate masdika-cert -n default

Kalau berhasil, Secret masdika-tls akan berisi SSL certificate yang bisa langsung dipakai di Ingress. 🔥

🎯 Kesimpulan

Dengan langkah di atas, kita sudah:

  1. Membuat API Token di Cloudflare
  2. Deploy cert-manager di Kubernetes
  3. Simpan token sebagai Secret
  4. Buat ClusterIssuer Let’s Encrypt
  5. Uji dengan membuat Certificate untuk domain

Sekarang domain kamu bisa otomatis dapet SSL gratis dari Let’s Encrypt, dan auto-renew setiap 90 hari. 😎👌

✨ Tips:

  • Gunakan email aktif di ClusterIssuer biar dapat notifikasi kalau ada masalah.
  • Pastikan Cloudflare token hanya punya akses DNS Edit agar lebih aman.
  • Kalau mau staging (testing), bisa ganti server ke: https://acme-staging-v02.api.letsencrypt.org/directory

💬 Gimana, mau saya bikinin juga contoh Ingress yang langsung pakai Secret masdika-tls biar SSL langsung aktif di Nginx Ingress Controller? Komen dibawah ya !!!!

Share:
Tags: api tokenscloudflarednszone
Related Posts

Post navigation

Prev
Next
Write a comment Cancel Reply


© 2025 www.masdika.id — Semua hak cipta dilindungi