Cara Mengamankan n8n dengan HTTPS dan Nginx
Pikirkan sejenak apa yang tersimpan di instance n8n Anda: kunci API Google, token Telegram, akses HubSpot, mungkin kredensial database. n8n adalah gantungan kunci dari seluruh sistem yang Anda otomasi. Membiarkannya diakses lewat http://IP:5678 yang terbuka ke internet berarti halaman loginnya bisa ditumbuk bot sepanjang malam, dan setiap sesi Anda lewat WiFi publik bisa disadap. Tutorial ini menutup semua itu: n8n pindah ke balik Nginx, terkunci HTTPS, dengan port aslinya tak lagi terlihat dunia.
Kenapa instalasi n8n polos itu berisiko
Tiga lubang pada pemasangan bawaan yang diakses langsung lewat IP dan port: lalu lintasnya polos (kredensial yang Anda ketik saat login melintas tanpa enkripsi), port non-standar yang terbuka adalah undangan pemindai otomatis, dan webhook production Anda berjalan di alamat HTTP yang beberapa layanan pihak ketiga bahkan menolak memanggilnya. Semua tutorial kami sebelumnya sengaja berhenti di "jangan biarkan begini untuk produksi" — ini kelanjutannya.
Prasyarat: n8n sudah jalan via Docker seperti di tutorial pemasangan n8n, dan Anda punya satu domain yang bisa diatur DNS-nya.
Langkah 1: Arahkan subdomain ke VPS
Di pengelola DNS domain Anda, buat record A: n8n.usaha-anda.com menunjuk ke IP VPS. Verifikasi sebelum lanjut:
dig +short n8n.usaha-anda.com
Sampai perintah itu menjawab dengan IP VPS Anda, jangan lanjut — langkah HTTPS di bawah akan gagal dan Anda akan men-debug hal yang salah.
Langkah 2: Pasang Nginx sebagai reverse proxy
sudo apt install nginx
Buat /etc/nginx/sites-available/n8n:
server {
listen 80;
server_name n8n.usaha-anda.com;
location / {
proxy_pass http://127.0.0.1:5678;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
# n8n memakai websocket untuk antarmukanya
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 300s;
}
}
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
Tiga baris websocket itu bukan opsional — tanpanya editor n8n akan terbuka tapi berperilaku aneh: eksekusi tidak ter-update, kanvas seperti beku. Ini penyebab nomor satu keluhan "n8n rusak setelah dipasangi Nginx".
Langkah 3: Aktifkan HTTPS dengan Let's Encrypt
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d n8n.usaha-anda.com
Terima opsi redirect ke HTTPS. Rincian cara kerja dan pengujian perpanjangan otomatisnya sudah kami tulis lengkap di tutorial Let's Encrypt — jalankan juga certbot renew --dry-run dari sana.
Langkah 4: Rapikan environment n8n dan tutup port lama
n8n perlu tahu alamat barunya, terutama untuk membuat URL webhook yang benar. Di docker-compose.yml:
environment:
- N8N_HOST=n8n.usaha-anda.com
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.usaha-anda.com/
ports:
- "127.0.0.1:5678:5678"
Perhatikan baris ports: dengan awalan 127.0.0.1:, port 5678 hanya bisa diakses dari dalam server sendiri — Nginx tetap bisa meneruskannya, internet tidak lagi melihatnya. Lalu docker compose up -d dan pastikan firewall hanya membuka yang perlu:
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
Uji hasil akhirnya dari luar: https://n8n.usaha-anda.com terbuka dengan gembok; http://IP:5678 tidak bisa diakses lagi. Kalau Anda punya webhook production yang sudah dipakai sistem lain, perbarui alamatnya di sistem pemanggil — alamat lama berbasis IP kini mati, dan memang itu tujuannya.
Checklist keamanan minimum instalasi n8n
- HTTPS aktif, port aplikasi tertutup dari publik — baru saja selesai.
- Akun owner berpassword kuat dari password manager; aktifkan juga two-factor authentication di pengaturan akun n8n.
- Update rutin: n8n merilis perbaikan keamanan seperti software lain; instance yang setahun tidak disentuh membawa celah yang sudah diumumkan ke publik.
- Backup workflow terjadwal — server yang aman dari penyusup belum aman dari disk yang mati.
- Webhook divalidasi: token rahasia atau signature untuk setiap endpoint yang menerima data penting, seperti dibahas di tutorial webhook.
Kalau daftar ini terasa seperti pekerjaan yang tim Anda tidak ingin pegang terus-menerus, itu pertimbangan yang sah — sebagian klien kami memilih menyerahkan pembangunan sekaligus perawatan sistem otomasinya, dan checklist di atas menjadi tanggung jawab kami.
Clovertechno