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 :
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 :
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 :
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
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 :
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
// 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.