Beberapa waktu lalu saya butuh setup local development di Laragon dengan custom domain dan SSL. Alasannya simpel: project yang sedang dikerjakan butuh fitur yang cuma jalan di HTTPS, misalnya Service Workers atau API tertentu yang nolak request dari localhost biasa.
Masalahnya, host generator bawaan Laragon entah kenapa di laptop saya gak berfungsi. Sudah dicoba beberapa kali tetap gagal. Akhirnya saya putuskan buat setup manual pakai mkcert dan edit hosts file sendiri. Ternyata hasilnya lebih fleksibel, tiap project bisa pakai domain masing-masing.
Install mkcert
Pertama, installmkcert dulu. Di Windows paling gampang pakai Chocolatey atau Scoop:
choco install mkcertatau kalau pakai Scoop:
scoop install mkcertSetelah terinstall, jalankan perintah ini buat bikin local CA:
mkcert -installIni bakal minta konfirmasi buat install root certificate ke Windows. Klik Yes aja. Fungsinya supaya semua certificate yang dibuat nanti otomatis trusted oleh sistem.
Setup Custom Domain di hosts File
Buka fileC:\Windows\System32\drivers\etc\hosts pakai text editor (run as Administrator). Tambahkan domain yang diinginkan:
127.0.0.1 myproject.local 127.0.0.1 api.myproject.localSaya pakai ekstensi
.local biar gampang bedain mana domain lokal mana yang asli. Terserah sih mau pakai apa, tapi jangan pakai .dev karena itu sudah dipakai Google dan bisa bentrok.
Buat SSL Certificate
Sekarang buat certificate untuk domain yang sudah dibuat. Masuk ke folder project, lalu jalankan:mkcert myproject.local "*.myproject.local"Perintah ini bakal bikin dua file:
myproject.local+1.pem— certificatemyproject.local+1-key.pem— private key
*.myproject.local) dipakai supaya subdomain juga bisa pakai certificate yang sama. Jadi api.myproject.local, admin.myproject.local, dll gak perlu buat certificate lagi.
Setup di Laragon
Buka Laragon, klik kanan di tray icon, pilih Apache > sites-enabled > auto.template. Atau kalau mau manual, buka fileC:\laragon\etc\apache2\sites-enabled\auto.template.
Tambahkan virtual host untuk project:
<VirtualHost *:443>
DocumentRoot "C:/laragon/www/myproject/public"
ServerName myproject.local
ServerAlias *.myproject.local
SSLEngine on
SSLCertificateFile "C:/laragon/www/myproject/myproject.local+1.pem"
SSLCertificateKeyFile "C:/laragon/www/myproject/myproject.local+1-key.pem"
<Directory "C:/laragon/www/myproject/public">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Sesuaikan path folder project dan nama certificate sesuai yang tadi dibuat. Kalau pakai Nginx, konfigurasinya beda lagi tapi konsepnya sama.
Setelah itu restart Apache dari Laragon. Buka browser, akses
https://myproject.local. Harusnya langsung jalan dengan icon gembok hijau di address bar.
Per Project, Per Domain
Yang enak dari cara ini, tiap project bisa punya domain sendiri. Misal:project-a.localuntuk project Laravelproject-b.localuntuk project CodeIgniterapi.localuntuk backend API
Kalau mau lebih praktis, taruh semua certificate di satu folder khusus misalnya
C:\laragon\ssl\ biar rapi. Tapi saya pribadi lebih suka taruh di folder project masing-masing, biar kalau projectnya dipindah atau dihapus, certificate-nya ikut bersih.
Troubleshooting
Beberapa masalah yang pernah saya temui:Certificate gak trusted: Pastikan sudah jalankan
mkcert -install. Kalau sudah tapi masih warning, coba restart browser.
Port 443 gak jalan: Cek apakah ada aplikasi lain yang pakai port 443. Bisa dilihat di Laragon di bagian port status.
Domain gak bisa diakses: Pastikan hosts file tersimpan dengan benar. Kadang editor yang gak di-run as Administrator gak bisa save ke folder drivers.
Secara keseluruhan, setup ini cukup straightforward. Awalnya memang butuh beberapa langkah, tapi setelah terbiasa bisa dikerjakan kurang dari 5 menit per project. Dan yang penting, gak perlu pusing lagi sama warning "Not Secure" di browser saat development.

EmoticonEmoticon