Skip to main content
Reverse Proxy dengan Nginx dan Pemasangan Sertifikat SSL
  1. doc/

Reverse Proxy dengan Nginx dan Pemasangan Sertifikat SSL

·2 mins·

Tutorial ini menjelaskan cara menyiapkan Nginx reverse proxy untuk subdomain yoursubdomain.example.com ke aplikasi yang berjalan di localhost:9000, lalu mengamankannya dengan SSL/HTTPS menggunakan Certbot dan Let’s Encrypt.

Asumsi
#

  • Server Linux seperti Ubuntu atau Debian sudah terpasang Nginx.
  • Aplikasi berjalan di localhost:9000 pada server yang sama.
  • DNS record A untuk yoursubdomain.example.com sudah mengarah ke IP publik server.
  • Firewall UFW sudah mengizinkan trafik HTTP di port 80 dan HTTPS di port 443.

Daftar Isi
#

1. Instal Certbot
#

Instal Certbot dan plugin Nginx yang dibutuhkan pada sistem berbasis Debian atau Ubuntu.

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

2. Buka firewall
#

Jika Anda menggunakan UFW, pastikan profil Nginx sudah diizinkan.

sudo ufw allow 'Nginx Full'
sudo ufw reload

3. Buat konfigurasi reverse proxy
#

Buat file server block untuk subdomain Anda di direktori sites-available.

sudo nano /etc/nginx/sites-available/yoursubdomain.example.com

Lalu isi dengan konfigurasi berikut.

server {
	listen 80;
	listen [::]:80;

	server_name yoursubdomain.example.com;

	location / {
		proxy_pass http://localhost:9000;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
	}
}

Jika aplikasi Anda menerima upload besar, Anda bisa menambahkan client_max_body_size 100M; di dalam blok location sesuai kebutuhan.

4. Aktifkan konfigurasi
#

Buat symlink ke sites-enabled agar konfigurasi dipakai oleh Nginx.

sudo ln -s /etc/nginx/sites-available/yoursubdomain.example.com /etc/nginx/sites-enabled/

5. Uji Nginx
#

Periksa sintaks konfigurasi lalu muat ulang Nginx.

sudo nginx -t
sudo systemctl reload nginx

Jika tidak ada error, aplikasi Anda seharusnya sudah dapat diakses melalui http://yoursubdomain.example.com.

6. Pasang SSL dengan Certbot
#

Jalankan Certbot dengan plugin Nginx dan tentukan subdomain yang ingin diamankan.

sudo certbot --nginx -d yoursubdomain.example.com

Saat proses berjalan, Certbot biasanya akan menanyakan:

  • Alamat email untuk notifikasi pembaruan dan keamanan.
  • Persetujuan terhadap terms of service.
  • Opsi berbagi email dengan EFF.
  • Opsi redirect HTTP ke HTTPS. Pilih redirect agar trafik selalu memakai HTTPS.

Jika berhasil, Certbot akan memodifikasi konfigurasi Nginx secara otomatis dan menambahkan blok server HTTPS dengan sertifikat Let’s Encrypt.

7. Verifikasi dan uji akses
#

Setelah selesai, buka https://yoursubdomain.example.com dan pastikan browser menampilkan koneksi aman.

Jika ingin memastikan konfigurasi Nginx yang baru diterapkan, Anda juga bisa mengecek kembali status service.

sudo systemctl status nginx

8. Cek pembaruan otomatis
#

Sertifikat Let’s Encrypt berlaku selama 90 hari, tetapi Certbot biasanya sudah menambahkan timer atau cron untuk pembaruan otomatis.

Uji proses perpanjangan dengan mode dry run:

sudo certbot renew --dry-run

Jika perintah ini selesai tanpa error, pembaruan otomatis Anda sudah dikonfigurasi dengan benar.

Askarhabibulloh
Author
Askarhabibulloh