Lewati ke konten utama
  1. Posts/

Cara Pasang SSL Gratis di Homelab Menggunakan Traefik dan Cloudflare Tanpa Buka Port HTTP

··679 kata·4 menit
Noor Khafidzin
Penulis
Noor Khafidzin
Daftar isi

Membangun home server sendiri memang memuaskan, sampai Anda menyadari bahwa mengakses dashboard web app di jaringan lokal melalui HTTP biasa terasa kurang aman dan profesional. Masalahnya, metode verifikasi SSL standar sering kali mengharuskan kita membuka port 80 ke internet, yang tentu berisiko bagi keamanan jaringan rumah.

Solusi cerdas untuk pengguna homelab adalah menggunakan Traefik sebagai reverse proxy dengan metode DNS-01 Challenge. Dengan cara ini, Anda bisa mendapatkan sertifikat SSL resmi dari Let’s Encrypt tanpa perlu melakukan port forwarding port 80 di router Anda.

Tutorial ini akan memandu Anda melakukan setup docker yang seamless sehingga seluruh layanan self-hosted Anda (seperti Jellyfin, Pi-hole, atau Nexcloud) bisa diakses melalui HTTPS dengan domain asli secara otomatis.

Persiapan Homelab
#

Sebelum mengeksekusi konfigurasi, pastikan infrastruktur home server Anda siap:

  • Server Lokal: PC tua, Raspberry Pi, atau Mini PC yang sudah terpasang Docker dan Docker Compose.
  • Domain Pribadi: Anda harus memiliki domain (misal: homelab-kita.com) yang DNS-nya dikelola di Cloudflare.
  • Cloudflare API Token: Token khusus dengan izin Zone-DNS-Edit agar Traefik bisa “menitipkan” kode verifikasi SSL ke DNS Cloudflare.
  • Local DNS/Pi-hole (Opsional): Untuk mengarahkan domain Anda ke IP lokal server tanpa harus keluar ke internet.

Langkah Demi Langkah Konfigurasi
#

1. Persiapan Struktur Folder dan Izin File
#

Di home server Anda, buat struktur folder agar data sertifikat tidak hilang saat container di-rebuild.

mkdir -p ~/homelab/traefik/data
touch ~/homelab/traefik/data/acme.json
chmod 600 ~/homelab/traefik/data/acme.json

Penjelasan Teknis: File acme.json bersifat sangat sensitif karena menyimpan private key SSL Anda. Let’s Encrypt dan Traefik mewajibkan izin akses ketat (600) agar orang lain di sistem Linux Anda tidak bisa membacanya.

2. Konfigurasi Docker Compose Traefik
#

Buat file docker-compose.yml di dalam folder traefik. Konfigurasi ini dirancang khusus untuk skenario homelab yang mengutamakan privasi dan otomatisasi.

services:
  traefik:
    image: traefik:v3.0
    container_name: traefik
    restart: always
    ports:
      - "443:443" # Port HTTPS utama
      - "8080:8080" # Dashboard Traefik (akses lokal)
    environment:
      - CF_DNS_API_TOKEN=isi_token_cloudflare_anda
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./data/acme.json:/acme.json
    command:
      - --api.insecure=true
      - --providers.docker=true
      - --providers.docker.exposedbydefault=false
      - --entrypoints.websecure.address=:443
      # DNS-01 Challenge Settings
      - --certificatesresolvers.homelab-resolver.acme.dnschallenge=true
      - --certificatesresolvers.homelab-resolver.acme.dnschallenge.provider=cloudflare
      - --certificatesresolvers.homelab-resolver.acme.email=email-anda@mail.com
      - --certificatesresolvers.homelab-resolver.acme.storage=/acme.json
    networks:
      - proxy

networks:
  proxy:
    external: true

3. Menghubungkan Web App ke Traefik
#

Sekarang, mari kita pasang SSL pada salah satu layanan homelab Anda (misalnya dashboard server). Anda hanya perlu menambahkan label berikut pada file docker-compose aplikasi target:

services:
  my-dashboard:
    image: nginx:alpine
    networks:
      - proxy
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.dash.rule=Host(`dash.homelab-kita.com`)"
      - "traefik.http.routers.dash.entrypoints=websecure"
      - "traefik.http.routers.dash.tls.certresolver=homelab-resolver"

Penjelasan Teknis: Saat container aplikasi menyala, Traefik akan mendeteksi label tersebut melalui docker.sock. Ia kemudian akan menghubungi Cloudflare untuk memverifikasi domain, mengunduh sertifikat SSL, dan mengaktifkan enkripsi HTTPS secara real-time.

Mengapa Pendekatan Ini Terbaik untuk Homelab?
#

Penggunaan traefik dengan cloudflare DNS-01 challenge adalah “jalan pintas” terbaik bagi pengguna home server. Kebanyakan ISP rumahan memblokir port 80, yang biasanya dibutuhkan oleh verifikasi HTTP-01 Let’s Encrypt standar. Dengan metode DNS, pembuktian kepemilikan domain dilakukan di level DNS record, sehingga server Anda tetap aman di balik firewall tanpa satu pun port terbuka ke internet (jika Anda menggunakan VPN/Tailscale).

Dari sisi manajemen, metode ini sangat low-maintenance. Anda tidak perlu lagi menjalankan skrip certbot secara manual setiap 3 bulan. Begitu setup awal selesai, setiap kali Anda menambah layanan baru di docker, Anda cukup menambahkan beberapa baris label, dan boooom—layanan Anda langsung memiliki gembok hijau HTTPS.

Selain itu, penggunaan reverse proxy memusatkan manajemen sertifikat. Anda tidak perlu memasang SSL di setiap container secara terpisah. Traefik bertindak sebagai satpam di pintu depan (port 443) yang mendekripsi lalu lintas sebelum menyalurkannya ke container di dalam jaringan internal homelab Anda.

Kesimpulan dan Troubleshooting
#

Membangun sistem ssl otomatis dengan traefik, cloudflare, dan docker membuat infrastruktur homelab Anda jauh lebih aman dan menyerupai standar enterprise. Tidak ada lagi peringatan “Unsecured” saat mengakses data pribadi dari ruang tamu atau kamar tidur.

Troubleshooting Umum:

  • Bad Gateway (502): Pastikan aplikasi web Anda berada dalam docker network yang sama dengan Traefik (dalam contoh ini network proxy).
  • SSL Tidak Terbit: Cek log container dengan docker logs traefik. Pastikan token Cloudflare Anda memiliki izin yang cukup untuk mengubah DNS record.
  • DNS Resolution: Jika Anda di dalam rumah, pastikan domain tersebut diarahkan ke IP lokal server Anda melalui Pi-hole atau file /etc/hosts agar tidak perlu memutar ke internet luar.

Terkait


Load Comments