Cara Setup Domain Lokal (Private LAN) dengan SSL Let’s Encrypt Valid

Setup Domain Lokal SSL Valid Let's Encrypt Cloudflare NPM

Bagi administrator jaringan, praktisi DevOps, maupun pemilik *homelab* atau infrastruktur lokal kantor, mengakses dashboard perangkat jaringan seperti MikroTik Router, NAS (Synology/TrueNAS), Proxmox VE, NVR CCTV, hingga portal internal seringkali menimbulkan kendala keamanan dan kenyamanan. Menghafal deretan alamat IP lokal dan nomor *port* (seperti 192.168.1.1:8006 atau 192.168.99.254:8080) tidak hanya merepotkan, tetapi juga memicu peringatan merah yang mengganggu di peramban (browser) berupa “Your connection is not private” akibat ketiadaan sertifikat SSL yang valid.

Membuka port 80 dan 443 ke internet publik demi mendapatkan sertifikat Let’s Encrypt standar adalah tindakan yang berisiko tinggi karena memperluas *attack surface* perangkat jaringan Anda terhadap serangan *bot scanner* dan *brute force*. Solusi arsitektur terbaik dan standar industri untuk mengatasi tantangan ini adalah mengombinasikan Cloudflare DNS-01 Challenge dengan Nginx Proxy Manager (NPM).

πŸ’‘ Nilai Tambah Utama: Dengan metode ini, seluruh perangkat di jaringan lokal Anda dapat diakses menggunakan subdomain resmi (misalnya https://router.lan.hosterbyte.net atau https://nas.lan.hosterbyte.net) dengan sertifikat HTTPS Resmi (Gembok Hijau) tanpa membuka satu pun *port inbound* ke internet publik!

Arsitektur & Prinsip Kerja Sistem

Kunci dari metode ini terletak pada pemisahan antara jalur resolusi DNS publik dengan jalur transmisi data lokal:

  • DNS Resolusi Publik: Cloudflare bertindak sebagai Authoritative DNS yang memetakan nama domain wildcard (misal *.lan.hosterbyte.net) langsung ke alamat IP lokal server reverse proxy NPM Anda (misal 192.168.1.90). Mode yang digunakan adalah DNS Only (Grey Cloud).
  • Transmisi Data Lokal (Zero Internet Leak): Saat laptop atau komputer di jaringan Anda membuka URL domain, data langsung mengalir di dalam kabel LAN atau Wi-Fi lokal menuju server NPM tanpa pernah melewati jaringan publik.
  • Validasi Let’s Encrypt via DNS-01 Challenge: Let’s Encrypt memvalidasi kepemilikan domain melalui pembuatan *TXT record* sementara via Cloudflare API secara otomatis di latar belakang.

Tahap 1: Konfigurasi Wildcard DNS di Cloudflare

Langkah pertama adalah mendaftarkan *A Record* bertipe *Wildcard* pada dashboard Cloudflare agar seluruh subdomain .lan. diarahkan ke IP lokal server NPM:

  1. Login ke akun Cloudflare Dashboard dan pilih domain aktif Anda.
  2. Navigasi ke menu DNS > Records di sidebar sebelah kiri.
  3. Klik tombol Add record, lalu masukkan parameter berikut:
    • Type: A
    • Name: *.lan (otomatis mencakup seluruh subdomain *.lan.domainanda.com)
    • IPv4 address: Masukkan IP lokal server NPM Anda (contoh: 192.168.1.90)
    • Proxy status: DNS only (Ikon Awan Abu-abu / Grey Cloud) ☁️ (Wajib Grey Cloud!)
    • TTL: Auto
  4. Klik Save.

Tahap 2: Pembuatan Cloudflare API Token untuk Let’s Encrypt

Agar Nginx Proxy Manager (NPM) dapat menerbitkan dan memperpanjang sertifikat SSL secara mandiri tanpa intervensi manual, kita perlu memberikan izin akses API terbatas ke Cloudflare:

  1. Di dashboard Cloudflare, klik foto profil di sudut kanan atas > pilih My Profile.
  2. Pilih menu API Tokens pada bilah sisi kiri, lalu klik Create Token.
  3. Cari template bernama Edit zone DNS dan klik tombol Use template.
  4. Atur cakupan izin token:
    • Token name: NPM-DNS-01-Challenge
    • Permissions: Biarkan default (Zone - DNS - Edit)
    • Zone Resources: Pilih Include > Specific zone > pilih domain Anda.
  5. Klik Continue to summary, lalu klik Create Token.
  6. Simpan token rahasia yang muncul (misalnya cfat_yL08EJqFUZdYaaXnc...).

Tahap 3: Penerbitan Sertifikat Wildcard SSL di Nginx Proxy Manager (NPM)

Buka panel manajemen Nginx Proxy Manager Anda (contoh: http://192.168.1.90:81) dan lakukan penerbitan sertifikat SSL Wildcard:

  1. Masuk ke menu SSL Certificates di bar navigasi atas.
  2. Klik Add SSL Certificate > pilih Let’s Encrypt.
  3. Lengkapi formulir yang tersedia:
    • Domain Names: Masukkan *.lan.hosterbyte.net (tekan Enter), lalu tambahkan lan.hosterbyte.net (tekan Enter).
    • Email Address: Masukkan alamat email aktif Anda untuk notifikasi Let’s Encrypt.
    • Aktifkan opsi Use a DNS Challenge.
    • DNS Provider: Pilih Cloudflare.
    • Credentials File Content: Isi dengan token API Cloudflare yang telah dibuat:
      # Cloudflare API Token for Let's Encrypt DNS-01 Challenge
      dns_cloudflare_api_token = cfat_yL08EJqFUZdYaaXncDi1hbJR00nsuJFv6iz56PkM6f6af4fd
      
    • Propagation Seconds: Masukkan 30 atau 120 detik.
    • Centang kotak persetujuan I Agree to the Let’s Encrypt Terms of Service.
  4. Klik Save dan tunggu sekitar 15–30 detik hingga status sertifikat berubah menjadi Active.

Tahap 4: Konfigurasi Proxy Host Perangkat Jaringan Lokal

Setelah sertifikat Wildcard aktif, Anda dapat menghubungkan domain ke berbagai perangkat lokal secara instan.

Contoh Kasus: Menghubungkan Router Lokal (router.lan.hosterbyte.net)

  1. Pada dashboard NPM, buka menu Hosts > Proxy Hosts > klik Add Proxy Host.
  2. Tab Details:
    • Domain Names: router.lan.hosterbyte.net
    • Scheme: http (atau https jika antarmuka web router menggunakan HTTPS)
    • Forward Hostname / IP: 192.168.1.1 (Alamat IP Router Anda)
    • Forward Port: 80
    • Centang: Block Common Exploits dan Websockets Support.
  3. Tab SSL:
    • SSL Certificate: Pilih sertifikat *.lan.hosterbyte.net dari dropdown.
    • Centang: Force SSL dan HTTP/2 Support.
  4. Klik Save.

Tahap 5: Pengujian & Tips Fallback Saat Internet Mati

Buka peramban favorit Anda dan akses URL: https://router.lan.hosterbyte.net/. Anda akan langsung mendapati halaman login router terbuka secara aman dengan enkripsi penuh tanpa ada lagi peringatan sertifikat tidak aman.

πŸ’‘ Tips Tambahan: Static DNS MikroTik untuk Kesiapsiagaan Offline

Jika koneksi ISP internet luar sedang mengalami gangguan kabel putus, query DNS ke Cloudflare mungkin tidak dapat dihubungi. Agar seluruh domain lokal tetap dapat diakses normal tanpa bergantung pada koneksi internet publik, tambahkan entri Static DNS pada router MikroTik Anda:

/ip dns static
add name=*.lan.hosterbyte.net address=192.168.1.90 comment="DNS Fallback Lokal NPM"

Dengan konfigurasi di atas, router lokal akan langsung menjawab permintaan domain .lan. secara instan dari tabel internal, menjamin infrastruktur lokal Anda selalu siap dan terlindungi dalam segala kondisi.

Related Post

Leave a Comment