Cara Pasang SSL di Nginx dengan Let’s Encrypt

promo hosting cpanel

Memasang SSL di Nginx adalah langkah penting untuk mengamankan website kamu dan meningkatkan kepercayaan pengunjung. Dengan memasang SSL di Nginx, semua data yang dikirim antara server dan browser akan dienkripsi menggunakan protokol HTTPS. Tutorial ini akan memandu kamu langkah demi langkah cara pasang SSL di Nginx menggunakan sertifikat gratis dari Let’s Encrypt.

Apa Itu SSL dan Kenapa Perlu Dipasang di Nginx?

SSL (Secure Sockets Layer) adalah protokol keamanan yang mengenkripsi koneksi antara web server dan browser. Sertifikat SSL memastikan bahwa data sensitif seperti password, informasi kartu kredit, dan data pribadi tidak bisa dicegat oleh pihak ketiga. Google juga memberikan peringkat lebih tinggi pada website yang sudah menggunakan HTTPS dibanding yang masih HTTP.

Nginx adalah salah satu web server paling populer saat ini. Sebelum kamu bisa mengaktifkan HTTPS di server, pastikan kamu sudah memiliki:

  • Server Linux (Ubuntu 20.04/22.04 atau Debian)
  • Nginx sudah terinstall dan berjalan
  • Domain yang sudah diarahkan ke IP server
  • Akses root atau sudo ke server

Install Certbot untuk Let’s Encrypt

Certbot adalah tool resmi dari Let’s Encrypt untuk mendapatkan dan memperbarui sertifikat SSL secara otomatis. Cara konfigurasi SSL di Nginx paling mudah adalah menggunakan Certbot. Jalankan perintah berikut untuk menginstall Certbot di server Ubuntu/Debian:

sudo apt update
sudo apt install certbot python3-certbot-nginx -y

Setelah instalasi selesai, verifikasi Certbot sudah terinstall dengan benar:

certbot --version

Konfigurasi Server Block Nginx

Sebelum pasang SSL di Nginx, pastikan server block (virtual host) sudah dikonfigurasi dengan benar. Buka file konfigurasi domain kamu:

sudo nano /etc/nginx/sites-available/namadomain.com

Pastikan isi konfigurasi minimal seperti ini:

server {
    listen 80;
    server_name namadomain.com www.namadomain.com;
    root /var/www/namadomain.com;
    index index.html index.php;

    location / {
        try_files $uri $uri/ =404;
    }
}

Simpan file dan aktifkan konfigurasi, lalu test konfigurasi Nginx:

sudo ln -s /etc/nginx/sites-available/namadomain.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Pasang SSL di Nginx dengan Certbot

Ini adalah langkah utama untuk pasang SSL di Nginx. Jalankan perintah Certbot berikut dan ganti namadomain.com dengan domain kamu yang sebenarnya:

sudo certbot --nginx -d namadomain.com -d www.namadomain.com

Certbot akan meminta beberapa informasi:

  1. Masukkan alamat email untuk notifikasi pembaruan sertifikat
  2. Setujui Terms of Service dengan mengetik A
  3. Pilih apakah ingin berbagi email dengan EFF (opsional)
  4. Pilih opsi redirect HTTP ke HTTPS (disarankan pilih nomor 2)

Jika proses berhasil, kamu akan melihat pesan “Congratulations! Your certificate and chain have been saved”. Certbot secara otomatis memperbarui konfigurasi Nginx untuk menggunakan SSL.

Verifikasi Konfigurasi SSL Nginx

Setelah berhasil pasang SSL di Nginx, cek konfigurasi yang dihasilkan Certbot:

sudo cat /etc/nginx/sites-available/namadomain.com

Konfigurasi yang dihasilkan Certbot akan terlihat seperti ini:

server {
    listen 80;
    server_name namadomain.com www.namadomain.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name namadomain.com www.namadomain.com;
    root /var/www/namadomain.com;

    ssl_certificate /etc/letsencrypt/live/namadomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/namadomain.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    location / {
        try_files $uri $uri/ =404;
    }
}

Test kembali konfigurasi Nginx dan reload:

sudo nginx -t && sudo systemctl reload nginx

Setup Auto-Renewal Sertifikat SSL

Sertifikat Let’s Encrypt berlaku selama 90 hari. Certbot otomatis menginstall cron job untuk memperbarui sertifikat. Namun, kamu bisa verifikasi proses renewal berjalan dengan baik:

sudo certbot renew --dry-run

Jika output menampilkan “Congratulations, all simulated renewals succeeded”, berarti auto-renewal sudah berjalan dengan benar. Kamu juga bisa cek timer systemd yang mengelola renewal:

sudo systemctl status certbot.timer

Test SSL dengan SSL Labs

Setelah pasang SSL di Nginx, sangat disarankan untuk menguji kualitas SSL kamu menggunakan SSL Labs. Kunjungi ssllabs.com/ssltest dan masukkan domain kamu. Website yang berhasil mengaktifkan HTTPS di Nginx dengan konfigurasi yang baik biasanya mendapatkan nilai A atau A+.

Untuk meningkatkan nilai SSL, tambahkan konfigurasi berikut di server block HTTPS kamu:

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
add_header Strict-Transport-Security "max-age=63072000" always;

Troubleshooting: Masalah Umum saat Pasang SSL di Nginx

Berikut beberapa masalah yang sering muncul saat pasang SSL di Nginx beserta solusinya:

Error: Domain tidak bisa diverifikasi

Pastikan DNS domain sudah diarahkan ke IP server dan sudah propagasi. Kamu bisa cek propagasi DNS menggunakan tools seperti whatsmydns.net. Certbot membutuhkan domain yang bisa diakses dari internet untuk proses verifikasi.

Error: Port 80 atau 443 terblokir

Pastikan firewall mengizinkan port 80 dan 443. Jika menggunakan UFW, jalankan perintah berikut:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload

Nginx gagal reload setelah pasang SSL

Jalankan sudo nginx -t untuk melihat error detail pada konfigurasi. Pastikan path ke file sertifikat SSL sudah benar dan tidak ada karakter yang salah pada file konfigurasi Nginx.

Kesimpulan

Cara pasang SSL di Nginx menggunakan Let’s Encrypt sangat mudah dan gratis. Dengan mengikuti tutorial ini, website kamu sudah terlindungi dengan enkripsi HTTPS yang valid. Ingat untuk selalu memastikan auto-renewal berjalan agar sertifikat SSL tidak kadaluarsa. Jika kamu membutuhkan bantuan lebih lanjut terkait konfigurasi server atau hosting VPS, tim support Computing ID siap membantu kamu.

promo vps
Previous Article

Cara Pasang SSL di Apache

Write a Comment

Leave a Comment

Your email address will not be published. Required fields are marked *