Kali ini kita akan membuat sebuah znc pada sebuah vps Debian 11, yang support SSL dan juga bisa diakses dengan https:// melalui Web.
Yang diperlukan :
1 2 3 4 |
Port untuk akses webadmin znc melalui web : 6400 Port untuk akses SSL via Client IRC : 6697 Web Server Nginx SSL dari Letsencrypt |
Silakan buka port 6697 jika mempergunakan firewall.
Jika belum memiliki file konfigurasi znc, buat terlebih dahulu dengan perintah seperti ini :
1 2 3 |
cd /home/user znc -c silakan isi sesuai dengan keperluan, yang penting ada dulu file konfigurasi znc.conf nya |
Kemudian dapatkan certificate untuk subdomain atau domain yang nanti rencananya mau diakses via web dengan mempergunakan Letsencrypt.
Matikan znc, karena kita perlu melakukan modifikasi pada langkah selanjutnya. Caranya bisa memakai pkill znc
Mendapatkan certificate Letsencrypt
Misal memakai subdomain znc.arsip.my.id , perintah di letsencrypt :
1 2 3 4 5 6 7 |
certbot -certonly znc.arsip.my.id Nanti akan dapat certificate misalnya : Certificate /etc/letsencrypt/live/znc.my.id/fullchain.pem Private Key /etc/letsencrypt/live/znc.my.id/privkey.pem Yang penting dapat fullchain.pem dan privkey.pem |
Sekarang kita buat konfigurasi untuk nginx, misalnya di /etc/nginx/sites-enabled/znc.my.id.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
server { listen 80; listen 443 ssl; server_name znc.my.id; ssl_certificate /etc/letsencrypt/live/znc.arsip.my.id/fullchain.pem; # ssl_certificate_key /etc/letsencrypt/live/znc.arsip.my.id/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; location / { proxy_http_version 1.1; proxy_set_header Connection "upgrade"; proxy_set_header Upgrade $http_upgrade; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://127.0.0.1:6400; proxy_buffering off; } } |
Tujuannya adalah ketika domain znc.arsip.my.id diakses, akan membuka halaman web adminnya znc, tapi memakai SSL atau https atau ada gemboknya.
Jadikan satu file fullchain.pem dan privkey.pem sebagai znc.pem :
1 2 3 4 5 6 7 8 |
Sebagai root, karena perlu akses ke letsencrypt : cd /home/namauser/ cat /etc/letsencrypt/live/znc.arsip.my.id/{privkey,fullchain}.pem > znc.pem chown namauser:namauser /home/namauser/znc.pem Sebagai user znc : cp /home/namauser/znc.pem /home/namauser/.znc/znc.pem |
Konfigurasi znc.conf
Selanjutnya adalah konfigurasi znc.conf, yang umumnya lokasinya di /home/namauser/.znc/configs/znc.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
// WARNING // // Do NOT edit this file while ZNC is running! // Use webadmin or *controlpanel instead. // // Altering this file by hand will forfeit all support. // // But if you feel risky, you might want to read help on /znc saveconfig and /znc rehash. // Also check https://wiki.znc.in/Configuration AnonIPLimit = 10 AuthOnlyViaModule = false ConfigWriteDelay = 0 ConnectDelay = 5 HideVersion = true LoadModule = webadmin LoadModule = identfile MaxBufferSize = 500 ProtectWebSessions = false SSLCertFile = /home/namauser/.znc/znc.pem SSLDHParamFile = /home/namauser/.znc/znc.pem SSLKeyFile = /home/namauser/.znc/znc.pem ServerThrottle = 30 Skin = ice StatusPrefix = * Version = 1.8.2 <Listener listener0> AllowIRC = true AllowWeb = true IPv4 = true IPv6 = true Port = 6400 SSL = false URIPrefix = / </Listener> <Listener listener1> AllowIRC = true AllowWeb = true IPv4 = true IPv6 = true Port = 6697 SSL = true URIPrefix = / </Listener> .... |
Contoh diatas, maksudnya znc bisa diakses memakai port ip.address.vps.anda:6400 untuk web secara langsung, dan juga jika memakai client dengan mempergunakan port 6697 untuk SSL.
Jika sudah, simpan file konfigurasi znc.conf tadi, lalu jalankan znc
Buka domain znc.arsip.my.id, maka nanti akan muncul halaman web adminnya znc. Dengan catatan akan muncul https atau ada gemboknya.
Lalu buka di Web Admin – Global Settings, akan muncul tampilan seperti ini:
Langkah seting koneksi dari Client IRC
Karena saya memakai Hexchat, maka berikut adalah contoh koneksi ke znc yang memakai port SSL di 6697
Perhatikan pilihan Use SSL for all the servers on this network, harus dicentang
Jadi intinya :
- Perlu port untuk akses web admin znc
- Perlu port ssl 6697 untuk koneksi znc
- Perlu seting Nginx
- Perlu seting Use SSL di Client
Kalau semua sukses, maka koneksi ke znc akan muncul warna hijau, atau SSLnya aktif. 😄
Kelemahan metode ini adalah, masa aktif certificate dari Letsencrypt yang perlu dilakukan renewal setiap 3 bulan.
Tutorial selanjutnya adalah mempergunakan Caddy, supaya certificatenya otomatis diperpanjang.