Lompat ke konten Lompat ke sidebar Lompat ke footer

Konfigurasi SSL Wildcard Let's Encrypt di Server Nginx untuk Aplikasi Laravel

 

Konfigurasi SSL Wildcard Let's Encrypt di Server Nginx untuk Aplikasi Laravel

Keamanan transmisi data adalah fondasi mutlak bagi aplikasi web modern. Jika Anda membangun aplikasi Laravel dengan arsitektur multi-tenant atau layanan yang menggunakan banyak subdomain (seperti api.domain.com, admin.domain.com, dan app.domain.com), memasang sertifikat SSL untuk setiap subdomain secara individual sangatlah tidak efisien. Solusi tingkat profesional untuk arsitektur ini adalah menggunakan SSL Wildcard dari Let's Encrypt yang diintegrasikan pada peladen (server) Nginx.

Perbandingan SSL Standar vs SSL Wildcard

Sebelum melakukan konfigurasi, penting untuk memahami batasan dari setiap jenis sertifikat.

ParameterSSL Standar (Single Domain)SSL Wildcard
Cakupan PerlindunganHanya melindungi satu nama host (contoh: domain.com)Melindungi domain utama dan seluruh subdomain (*.domain.com)
Metode Validasi Let's EncryptValidasi HTTP-01 (menaruh file di server)Validasi DNS-01 (wajib menambahkan Record TXT di DNS)
Efisiensi ManajemenHarus diterbitkan ulang setiap kali ada subdomain baruCukup satu sertifikat untuk jumlah subdomain tak terbatas
Skenario PenggunaanBlog, situs profil perusahaan, aplikasi tunggalAplikasi Software as a Service (SaaS), microservices, portal e-commerce

Tahapan Konfigurasi Teknis di Server Nginx

Karena SSL Wildcard mensyaratkan kepemilikan penuh atas seluruh zona DNS, Let's Encrypt mewajibkan metode validasi DNS (DNS Challenge). Berikut adalah alur eksekusinya pada peladen berbasis Linux (Ubuntu/Debian).

1.Instalasi Certbot:Memasang alat sertifikasi otomatis.

Langkah pertama adalah menginstal Certbot, perangkat lunak klien resmi Let's Encrypt. Buka terminal peladen Anda dan jalankan perintah berikut:

Bash
sudo apt update
sudo apt install certbot python3-certbot-nginx
2.Generate Sertifikat SSL Wildcard:Wajib menggunakan validasi DNS-01.

Jalankan perintah penerbitan sertifikat secara manual dengan metode DNS. Ganti domain.com dengan nama domain asli Anda:

Bash
sudo certbot certonly --manual --preferred-challenges=dns -d "*.domain.com" -d "domain.com"

Terminal akan berhenti sejenak dan menampilkan kode acak. Sistem meminta Anda untuk masuk ke panel pengelola domain (seperti Cloudflare atau Route53) dan membuat TXT Record dengan nama _acme-challenge.domain.com yang berisi kode acak tersebut. Setelah DNS terpropagasi, tekan Enter di terminal untuk memvalidasi dan mengunduh sertifikat.

3.Konfigurasi Server Block Nginx:Mengarahkan trafik aman ke direktori Laravel.

Edit file konfigurasi Nginx aplikasi Laravel Anda (biasanya di /etc/nginx/sites-available/laravel). Pastikan direktori root mengarah tepat ke folder public bawaan Laravel, dan sertifikat SSL diarahkan ke lokasi instalasi Let's Encrypt.

Nginx
server {
listen 443 ssl http2;
server_name *.domain.com domain.com;
root /var/www/laravel/public;

# Jalur sertifikat Wildcard ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem; # Konfigurasi standar Laravel index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } # Eksekusi PHP-FPM location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; }
}

Simpan konfigurasi, lalu jalankan sudo nginx -t untuk memeriksa tidak ada error sintaksis. Jika berhasil, muat ulang peladen dengan sudo systemctl reload nginx.

4.Otomatisasi Pembaruan (Renewal):Mencegah sertifikat kedaluwarsa secara diam-diam.

Sertifikat Let's Encrypt hanya berlaku selama 90 hari. Agar perpanjangan berjalan tanpa intervensi manual, Anda harus mengonfigurasi API DNS pihak ketiga (seperti plugin certbot-dns-cloudflare) dan memasukkannya ke dalam jadwal Cron Job agar sistem memverifikasi DNS dan memperbarui sertifikat setiap 60 hari.

Menerapkan SSL Wildcard pada Nginx memberikan fleksibilitas arsitektur yang luar biasa bagi ekosistem aplikasi Laravel Anda. Dengan satu sertifikat terpusat, pengembang dapat meluncurkan ratusan subdomain baru untuk klien SaaS atau layanan API secara instan tanpa perlu menyentuh konfigurasi keamanan peladen lagi. Infrastruktur ini tidak hanya memangkas kompleksitas administratif secara drastis, tetapi juga menjamin bahwa seluruh cabang aset digital perusahaan Anda terenkripsi secara seragam, memenuhi standar kepatuhan privasi data, dan mendapatkan prioritas pengindeksan yang optimal di mesin pencari.

Posting Komentar untuk "Konfigurasi SSL Wildcard Let's Encrypt di Server Nginx untuk Aplikasi Laravel"