SSL/TLS sekarang jadi standar buat hampir semua website. Selain bikin koneksi lebih aman lewat HTTPS, SSL juga ikut mempengaruhi SEO di Google. Di artikel ini saya bahas cara menambahkan SSL ke server Nginx secara gratis pakai Certbot dari Let’s Encrypt.
Sebelum mulai, pastikan kamu sudah punya:
- Server dengan Nginx yang sudah terinstal dan berjalan
- Domain yang sudah mengarah server
- Akses root atau sudo ke server
- Port 80 dan 443 kebuka di firewall
Pertama: Update Sistem dan Install Certbot
Certbot merupakan tool resmi dari Let’s Encrypt yang digunakan untuk memproses permintaan dan pemasangan sertifikat.
Untuk server berbasis Ubuntu atau Debian, jalankan perintah berikut:
sudo apt updatesudo apt install certbot python3-certbot-nginx -y
Paket python3-certbot-nginx berisi plugin yang membuat Certbot bisa langsung mengonfigurasi Nginx secara otomatis.
Kedua: Pastikan Konfigurasi Nginx Sudah Benar
Pastikan file konfigurasi domain kamu udah ada atau belom, kalau gapunya domain gabisa soalnya. Buka file konfigurasi domain:
sudo nano /etc/nginx/sites-available/example.com
Pastikan isinya minimal seperti ini:
server { listen 80; server_name example.com www.example.com; root /var/www/example.com/html; index index.html; location / { try_files $uri $uri/ =404; }}
Setelah itu, cek konfigurasi dan reload Nginx:
sudo nginx -tsudo systemctl reload nginx
Ketiga: Jalankan Certbot
Jalankan perintah berikut untuk meminta sertifikat:
sudo certbot --nginx -d example.com -d www.example.com
Certbot akan:
- Memverifikasi kepemilikan domain melalui challenge HTTP
- Mengambil sertifikat dari Let’s Encrypt
- Mengubah konfigurasi Nginx untuk menambahkan blok
listen 443 ssldan redirect dari HTTP ke HTTPS
Kamu akan diminta memasukkan email untuk notifikasi perpanjangan, menyetujui Terms of Service, dan memilih apakah ingin mengaktifkan redirect otomatis dari HTTP ke HTTPS. Pilih opsi redirect agar semua trafik otomatis diarahkan ke versi aman.
Keempat: Verifikasi Konfigurasi Nginx
Setelah Certbot selesai, cek file konfigurasi domain lagi. Biasanya sudah bertambah blok baru seperti ini:
server { listen 443 ssl; server_name example.com www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparam.pem; root /var/www/example.com/html; index index.html; location / { try_files $uri $uri/ =404; }}server { listen 80; server_name example.com www.example.com; return 301 https://$host$request_uri;}
Coba akses https://example.com di browser. Kalau muncul ikon gembok di address bar, berarti SSL sudah aktif.
Kelima: Tes Perpanjangan Otomatis
Masa aktif sertifikat Let’s Encrypt hanya 90 hari, tapi Certbot biasanya otomatis membuat cron job untuk perpanjangan. Pastikan perpanjangan berjalan dengan baik, jalankan simulasi berikut:
sudo certbot renew --dry-run
Kalau gak ada error, berarti perpanjangan otomatis aman dan gak perlu memperbarui sertifikat manual.
Penutup
Mudah kan nambahin SSL ke Nginx pake Certbot, hubungi saya jika kamu ada hal yang perlu ditanyakan lebih lanjut.