Apa yang bisa kami bantu?

A. Pendahuluan

Let's Encrypt merupakan Certificate Authority (CA) gratis dan otomatis yang banyak digunakan untuk mendapatkan sertifikat SSL secara mudah. Namun, untuk mengelola dan memperbarui sertifikat secara otomatis dalam lingkungan Kubernetes, dibutuhkan alat pendukung seperti Traefik (sebagai Ingress Controller) dan Cert-Manager (sebagai automated certificate management).

Dalam knowledge base ini, akan dijelaskan langkah-langkah untuk menginstal SSL dari Let's Encrypt pada cluster Kubernetes yang menggunakan Traefik sebagai ingress controller, serta Cert-Manager sebagai pengelola sertifikat otomatis. Panduan ini ditujukan bagi DevOps engineer, sysadmin, maupun developer yang ingin memastikan aplikasinya berjalan aman di atas Kubernetes menggunakan HTTPS.

B. Persiapan

  • NEO Kubernetes

C. Instalasi dan Konfigurasi

1. Install Cert-Manager via Helm

Tambahkan repo dan install cert-manager (dengan CRD-nya):

helm repo add jetstack <https://charts.jetstack.io>
helm repo update

# Install cert-manager dan CRD
kubectl create namespace cert-manager

helm install cert-manager jetstack/cert-manager \\
  --namespace cert-manager \\
  --set installCRDs=true

Tunggu semua pod jalan:

kubectl get pods -n cert-manager

2. Buat ClusterIssuer Let's Encrypt

Buat file cluster-issuer.yaml:

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
spec:
  acme:
    email: your-email@example.com
    server: <https://acme-v02.api.letsencrypt.org/directory>
    privateKeySecretRef:
      name: letsencrypt-prod-private-key
    solvers:
    - http01:
        ingress:
          class: traefik

Ganti your-email@example.com dengan email kamu.

Apply:

kubectl apply -f cluster-issuer.yaml

3. Update Ingress Agar Support TLS

Buat atau update ingress.yaml seperti ini:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nodejs-ingress
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt-prod
    traefik.ingress.kubernetes.io/router.entrypoints: websecure
spec:
  ingressClassName: traefik
  tls:
  - hosts:
    - sub-domain.id
    secretName: sub-domain-tls
  rules:
  - host: sub.domain.id
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: nodejs-service
            port:
              number: 80

Apply ulang:

kubectl apply -f ingress.yaml

4. Verifikasi TLS

Cek cert sudah dibuat:

kubectl get certificate
kubectl describe certificate sub-domain-tls

D. Uji Coba

Coba akses:

curl -v <https://sub.domain.id>

Browser juga harus menampilkan padlock/secure (HTTPS) jika berhasil.

E. Kesimpulan

Dengan menggunakan Traefik sebagai ingress controller dan Cert-Manager untuk mengelola sertifikat, proses instalasi SSL Let's Encrypt pada Kubernetes menjadi lebih otomatis, efisien, dan aman. Implementasi ini memastikan lalu lintas data antar aplikasi dan pengguna terlindungi oleh enkripsi HTTPS, serta memudahkan proses pembaruan sertifikat tanpa intervensi manual. Dengan demikian, keamanan aplikasi di lingkungan Kubernetes dapat terjaga dengan baik dan operasional menjadi lebih sederhana.

 

Selamat! Anda sudah bisa Install SSL Let's Encrypt Pada Ingress Kubernetes Menggunakan Traefik dan Cert-Manager. Semoga artikel ini dapat membantu Anda. Temukan bantuan lainnya melalui Knowledge Base Biznet Gio. Jika Anda masih memiliki kendala silakan hubungi Support Biznet GIO melalui email support@biznetgio.com atau live chat maupun WA ke website www.biznetgio.com dan bisa juga melalui telepon ke nomor (021) 5714567.