Panduan

Pasang Custom Domain dan SSL

Cara menghubungkan domain sendiri ke Netlify, Vercel, Cloudflare, dan GitHub Pages — beda A record dan CNAME, masalah domain root, serta SSL yang macet.

Memasang domain sendiri itu sebetulnya cuma dua hal: memberi tahu platform bahwa domain ini milikmu, lalu memberi tahu dunia bahwa domain ini mengarah ke platform tersebut. Yang bikin ribet biasanya satu masalah teknis lama — domain root tidak bisa pakai CNAME — dan sertifikat SSL yang macet tanpa penjelasan.

Panduan ini membahas keduanya, lalu langkah per platform.

Tiga jenis record yang perlu kamu kenal

RecordMenunjuk keDipakai untuk
AAlamat IPDomain root (situsku.com)
CNAMENama domain lainSubdomain (www.situsku.com)
ALIAS / ANAMENama domain lainDomain root, kalau penyedia DNS-mu mendukung

Perbedaan A dan CNAME itu penting karena satu aturan lama di DNS: domain root tidak boleh punya CNAME. Ini bukan batasan platform, tapi spesifikasi DNS itu sendiri.

Masalahnya, platform modern tidak punya IP tetap — mereka pakai jaringan edge yang IP-nya berubah. Jadi mengarahkan domain root ke A record yang statis itu rapuh.

Solusinya ada dua, dan mana yang kamu pakai tergantung penyedia DNS:

  • Kalau penyedia DNS-mu mendukung ALIAS, ANAME, atau CNAME flattening — Cloudflare, Netlify DNS, dan Vercel DNS semuanya mendukung — pakai itu. Domain root bisa menunjuk ke nama, dan penyedia menerjemahkannya jadi IP secara otomatis.
  • Kalau tidak mendukung — banyak registrar murah begini — pakai A record ke IP yang diberikan platform, dan terima bahwa suatu saat IP itu bisa berubah. Atau pindahkan DNS-mu ke penyedia yang mendukung.
Jalan pintas yang sering dipakai

Jadikan www.situsku.com sebagai alamat utama (pakai CNAME, aman), lalu arahkan situsku.com untuk redirect ke sana. Semua platform di bawah bisa melakukan redirect ini otomatis.

Netlify

1. Daftarkan domain

Buka situsmu di dashboard Netlify → Domain managementAdd a domain. Masukkan domainmu, lalu Netlify memverifikasi bahwa domain itu belum dipakai akun lain.

2. Arahkan DNS

Ada dua pilihan.

Pakai Netlify DNS (paling mudah). Netlify memberimu empat nameserver seperti dns1.p01.nsone.net. Ganti nameserver di registrar tempat kamu beli domain dengan keempatnya. Setelah itu semua record dikelola dari Netlify, termasuk domain root — CNAME flattening ditangani otomatis.

Pakai DNS eksternal. Kalau kamu ingin nameserver tetap di registrar, tambahkan record ini:

# subdomain www
CNAME   www   nama-situsmu.netlify.app

# domain root
A       @     75.2.60.5

IP untuk A record itu bisa berubah — selalu pakai nilai yang ditampilkan dashboard Netlify saat itu, jangan salin dari tutorial mana pun termasuk ini.

3. Tunggu SSL

Netlify menerbitkan sertifikat Let's Encrypt otomatis begitu DNS terverifikasi. Biasanya beberapa menit. Kalau macet, ada tombol Renew certificate di halaman Domain management untuk memicu ulang.

Vercel

1. Daftarkan domain

Buka project → SettingsDomains → masukkan domainmu → Add.

Vercel langsung menampilkan record yang perlu kamu buat, sudah disesuaikan dengan domain yang kamu masukkan. Ikuti yang di layar — itu lebih akurat daripada nilai yang ditulis di tutorial mana pun.

2. Arahkan DNS

Bentuk umumnya:

# subdomain www
CNAME   www   cname.vercel-dns.com

# domain root
A       @     216.198.79.1

Kalau kamu memindahkan nameserver ke Vercel, domain root ditangani otomatis tanpa perlu A record.

3. Pilih mana yang utama

Setelah kedua domain terdaftar, Vercel menanyakan mana yang jadi alamat utama. Yang satunya akan otomatis di-redirect 301 ke sana.

Pilih satu, dan konsisten

Jangan biarkan situsku.com dan www.situsku.com sama-sama menyajikan isi yang sama tanpa redirect. Bagi mesin pencari itu dua situs berbeda dengan konten identik, dan sinyal peringkatmu terbelah dua.

Cloudflare Workers

Kalau domainmu sudah dikelola Cloudflare, ini yang paling ringkas.

1. Pastikan domain ada di akun Cloudflare

Kalau belum: dashboard → Add a site → masukkan domain → ikuti proses pemindahan nameserver ke Cloudflare. Ini butuh waktu paling lama beberapa jam.

2. Tambahkan custom domain

Buka Worker kamu → SettingsDomains & RoutesAddCustom domain. Masukkan domain atau subdomainnya.

Selesai. DNS record dibuat otomatis, sertifikat SSL diterbitkan otomatis, dan domain root tidak bermasalah karena Cloudflare memakai CNAME flattening secara bawaan.

3. Kalau domainnya di registrar lain

Untuk custom domain di Workers, domainnya harus dikelola Cloudflare. Tidak ada jalan lain — pindahkan nameserver dulu.

GitHub Pages

1. Arahkan DNS

Untuk subdomain, satu CNAME cukup:

CNAME   www   namauser.github.io

Untuk domain root, GitHub memakai empat A record. Nilainya stabil dan didokumentasikan resmi:

A   @   185.199.108.153
A   @   185.199.109.153
A   @   185.199.110.153
A   @   185.199.111.153

2. Daftarkan di repositori

Buka repo → SettingsPages → isi Custom domainSave.

GitHub membuat berkas CNAME di repositorimu. Jangan hapus berkas itu — kalau hilang, domainnya lepas.

Kalau situsmu di-build lewat GitHub Actions

Berkas CNAME harus ikut masuk ke folder hasil build. Untuk Hugo, taruh di static/CNAME. Untuk Vite, taruh di public/CNAME. Kalau tidak, tiap deploy akan menghapusnya dan domainmu lepas berulang kali.

3. Aktifkan HTTPS

Setelah DNS terverifikasi, centang Enforce HTTPS di halaman yang sama. Kalau opsinya masih abu-abu, tunggu — sertifikatnya belum selesai diterbitkan.

Kalau SSL macet

Sertifikat yang tidak selesai-selesai hampir selalu disebabkan salah satu dari empat hal ini.

1. DNS belum sepenuhnya menyebar

Cek dari luar jaringanmu:

dig situsku.com +short
dig www.situsku.com +short

Kalau hasilnya masih kosong atau menunjuk ke tempat lama, tunggu. Penyebaran DNS biasanya hitungan menit, tapi bisa sampai 48 jam kalau TTL record lamamu panjang.

2. Record CAA memblokir penerbit sertifikat

Ini penyebab tersembunyi yang paling sering. Record CAA membatasi siapa yang boleh menerbitkan sertifikat untuk domainmu:

dig situsku.com CAA +short

Kalau ada isinya dan tidak memuat letsencrypt.org, penerbit yang dipakai platformmu ditolak. Tambahkan record ini, atau hapus CAA-nya sama sekali:

CAA   @   0 issue "letsencrypt.org"

3. Proxy Cloudflare aktif di depan platform lain

Kalau DNS-mu di Cloudflare (ikon awan oranye) tapi situsmu di-host di Netlify atau Vercel, verifikasi sertifikat platform itu bisa gagal karena permintaannya tidak sampai ke mereka.

Ubah record jadi DNS only (ikon awan abu-abu), tunggu sertifikat terbit, baru nyalakan proxy lagi kalau memang mau dipakai.

4. Ada record lama yang tertinggal

Record A atau AAAA sisa hosting sebelumnya yang masih nyangkut membuat sebagian permintaan mendarat di tempat yang salah. Bersihkan semua record untuk nama yang sama, sisakan hanya yang baru.

Redirect www dan non-www

Setelah domain aktif, pastikan hanya satu versi yang menyajikan isi, dan satunya redirect ke sana.

Semua platform di atas menyediakan setelan ini di dashboard. Kalau kamu perlu mengaturnya sendiri:

Netlify — di _redirects:

https://situsku.com/*   https://www.situsku.com/:splat   301!

Vercel — di vercel.json:

{
  "redirects": [
    {
      "source": "/(.*)",
      "has": [{ "type": "host", "value": "situsku.com" }],
      "destination": "https://www.situsku.com/$1",
      "permanent": true
    }
  ]
}

Setelah domain aktif, jangan lupa

  • Perbarui base URL di konfigurasi. site di Astro, baseURL di Hugo, NEXT_PUBLIC_SITE_URL di Next.js. Kalau tidak, sitemap dan URL kanonikmu masih menunjuk alamat lama.
  • Perbarui og:url dan canonical di semua halaman.
  • Kirim ulang sitemap ke Google Search Console dengan domain baru.
  • Cek redirect benar-benar 301, bukan 302. Redirect sementara tidak memindahkan sinyal peringkat.
curl -sSI https://situsku.com | head -3

Keluarannya harus memuat HTTP/2 301 dan header location yang menunjuk ke versi yang kamu pilih.

Ringkasan per platform

PlatformSubdomainDomain root
NetlifyCNAME ke *.netlify.appNetlify DNS, atau A record
VercelCNAME ke cname.vercel-dns.comVercel DNS, atau A record
CloudflareOtomatisOtomatis (wajib DNS di Cloudflare)
GitHub PagesCNAME ke *.github.ioEmpat A record GitHub

Kalau ada yang masih tidak beres setelah semua ini, kemungkinan besar gejalanya ada di 15 error deploy paling umum — nomor 13 dan 14 khusus membahas DNS dan SSL.

Untuk mengatur redirect setelah domainmu aktif, lihat panduan redirect dan rewrite. Gambaran menyeluruh soal deploy ada di panduan lengkap deploy website.