Cara Setup SSL Gratis Let’s Encrypt Menggunakan Nginx Proxy Manager

Cara Setup SSL Gratis Let’s Encrypt Menggunakan Nginx Proxy Manager

Apa Itu Nginx Proxy Manager?

Nginx Proxy Manager (NPM) adalah aplikasi berbasis Docker yang memudahkan pengelolaan reverse proxy, SSL Let’s Encrypt, dan domain melalui antarmuka web. Dibanding konfigurasi manual Nginx, NPM jauh lebih mudah dan cocok untuk pengguna yang ingin setup cepat tanpa banyak edit file config.

Prasyarat

  • VPS Ubuntu 20.04 / 22.04
  • Docker & Docker Compose sudah terinstall
  • Domain sudah mengarah ke IP VPS (A record benar)
  • Port 80 dan 443 terbuka di firewall

1. Install Nginx Proxy Manager Menggunakan Docker

Buat folder project:

mkdir nginx-proxy-manager && cd nginx-proxy-manager

Buat file docker-compose.yml:

nano docker-compose.yml

Isi konfigurasi berikut:

version: '3'

services:
  app:
    image: jc21/nginx-proxy-manager:latest
    container_name: nginx-proxy-manager
    restart: unless-stopped
    ports:
      - "80:80"
      - "81:81"
      - "443:443"
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

Jalankan container:

docker compose up -d

Akses dashboard di browser:

http://IP_VPS_KAMU:81

Login default:

Ganti email dan password setelah login pertama.

2. Menambahkan Domain (Proxy Host)

Di dashboard NPM:

  • Klik 'Proxy Hosts'
  • Klik 'Add Proxy Host'
  • Masukkan domain (contoh: example.com)
  • Forward Hostname/IP: isi IP lokal atau nama container (misalnya 127.0.0.1)
  • Forward Port: misalnya 3000 atau 8080 sesuai aplikasi

3. Setup SSL Let’s Encrypt

Masih di halaman Proxy Host:

  • Buka tab SSL
  • Pilih 'Request a new SSL Certificate'
  • Centang 'Force SSL'
  • Centang 'HTTP/2 Support'
  • Centang 'Agree to Let's Encrypt Terms of Service'
  • Klik Save

Jika DNS sudah benar dan port 80/443 terbuka, SSL akan otomatis terpasang dan website bisa diakses melalui HTTPS.

4. Pastikan Firewall Mengizinkan Port 80 dan 443

sudo ufw allow 80
sudo ufw allow 443
sudo ufw status

5. Troubleshooting Umum

5.1 SSL Gagal (Error Internal)

  • DNS belum mengarah ke IP VPS
  • Port 80 tidak terbuka
  • Ada CDN seperti Cloudflare aktif proxy (coba matikan sementara)

5.2 502 Bad Gateway

  • Aplikasi target tidak berjalan
  • Port salah pada Forward Port
  • Container tidak berada di network yang sama

Cek container berjalan:

docker ps

6. Best Practice Production

  • Gunakan email aktif untuk Let's Encrypt agar mendapat notifikasi
  • Backup folder /data dan /letsencrypt secara berkala
  • Gunakan network Docker custom untuk isolasi service
  • Batasi akses port 81 hanya untuk IP tertentu (opsional)

7. Kesimpulan

Nginx Proxy Manager memudahkan setup SSL gratis Let’s Encrypt tanpa konfigurasi manual yang kompleks. Dengan Docker dan dashboard web, kamu bisa mengelola banyak domain, reverse proxy, dan SSL dengan cepat dan aman untuk environment production.