Episode ini membahas perawatan jangka panjang: checklist produksi meliputi PKI rotation, renewal sertifikat dengan ACME, backup dan disaster recovery, strategi upgrade, sampai pola deployment dengan bare-metal, VM, Docker, Kubernetes, dan IaC.

Semua episode sebelumnya membangun fungsionalitas dan ketahanan. Episode 21 ini menjawab pertanyaan yang paling sering dilupakan: bagaimana VPN ini dirawat selama bertahun-tahun? Sertifikat akan kedaluwarsa, perangkat keras akan rusak, dan OpenVPN akan merilis versi baru.
Episode 21 ini membahas production-ready deployment dan maintenance. Kalian akan menyusun checklist yang mencakup rotasi PKI, renewal sertifikat dengan ACME, backup dan disaster recovery, strategi upgrade yang aman, serta pola deployment dari bare-metal hingga Kubernetes dan IaC.
Konsep kuncinya: VPN yang tidak dirawat adalah kecelakaan yang menunggu waktu. Deployment production yang sehat adalah yang bisa dipulihkan, diupgrade, dan dirotasi kuncinya tanpa panik.
PKI bukan objek statis — CA, kunci, dan sertifikat semuanya harus dirotasi secara terjadwal. Rotasi CA root jarang terjadi dan membutuhkan proses formal, sedangkan sertifikat leaf dan server dirotasi lebih sering.
Checklist rotasi yang sehat:
Sertifikat server OpenVPN bisa diperbarui otomatis dengan protokol ACME, sama seperti sertifikat web. Dengan plugin seperti acme.sh atau certbot, perpanjangan terjadi tanpa campur tangan manusia:
acme.sh --issue --dns dns_cf -d vpn.example.com
acme.sh --install-cert -d vpn.example.com \
--key-file /etc/openvpn/server/server.key \
--fullchain-file /etc/openvpn/server/server.crtacme.sh --install-cert menempatkan sertifikat baru ke path yang dipakai OpenVPN. Tambahkan hook untuk me-restart service setelah renew:
systemctl reload openvpn-server@serversystemctl reload openvpn-server@server membuat daemon memuat sertifikat baru. Beberapa versi membutuhkan restart penuh, jadi uji perilaku ini sebelum mengandalkan otomatisasi penuh.
Yang membuat OpenVPN unik: tanpa materi kunci, seluruh VPN tidak bisa dipulihkan. Backup harus mencakup direktori PKI, konfigurasi server dan client, file CCD, dan konfigurasi firewall:
tar czf /backup/openvpn-$(date +%F).tar.gz \
/etc/openvpn /etc/easy-rsa /etc/iptablestar czf /backup/openvpn-$(date +%F).tar.gz /etc/openvpn /etc/easy-rsa /etc/iptables mengemas seluruh state penting menjadi satu file bertanggal. Archive ini adalah tiket keluar ketika terjadi bencana.
Backup yang tidak pernah diuji bukan backup. Secara berkala, pulihkan archive ke mesin kosong dan pastikan server jalan. Skenario uji yang berguna: buka mesin baru, restore archive, start service, dan verifikasi client bisa connect.
Sebelum upgrade, baca changelog dan catatan rilis — terutama bagian breaking changes. Lihat juga versi mana yang masuk status maintenance dan mana yang end-of-life. OpenVPN 2.6 dan 2.7 punya jadwal rilis yang berbeda, jadi kalian harus tahu jalur upgrade yang kalian tempuh.
Upgrade selalu bisa gagal. Simpan paket versi lama dan snapshot konfigurasi sebelum upgrade, sehingga rollback hanya soal memasang ulang versi sebelumnya:
cp /etc/openvpn /etc/openvpn.bak-$(date +%F)
dpkg -l | grep openvpn > /var/log/openvpn-version.logdpkg -l | grep openvpn > /var/log/openvpn-version.log mencatat versi terpasang. Dengan catatan dan backup ini, rollback menjadi rutinitas yang terdokumentasi, bukan tindakan panik.
Di bare-metal atau VM, OpenVPN diinstall sebagai paket dan dikelola systemd. Ini pola paling sederhana dan paling banyak didokumentasikan. Cocok untuk server VPN yang kecil dan tidak sering berubah.
Untuk deployment berbasis container, image kylemanna/openvpn dari episode 0 menawarkan konfigurasi yang praktis. Di Kubernetes, OpenVPN sering dijalankan sebagai DaemonSet atau Deployment dengan network configuration:
docker run -v /etc/openvpn:/etc/openvpn --cap-add=NET_ADMIN \
-p 1194:1194/udp kylemanna/openvpndocker run ... kylemanna/openvpn menjalankan server dengan volume konfigurasi dan capability NET_ADMIN yang dibutuhkan untuk membuat interface tun. Catatan penting: mode container memerlukan /dev/net/tun dan privilege yang tepat — persis peringatan di episode 0.
Untuk skala besar, definisikan infrastruktur sebagai kode. Terraform membuat infrastruktur dasar, Ansible menyediakan dan mengonfigurasi OpenVPN. Pola ini menghasilkan lingkungan yang bisa direproduksi dan diaudit:
- name: Configure OpenVPN
hosts: vpn_servers
become: true
vars:
vpn_port: 1194
vpn_network: "10.8.0.0"
roles:
- openvpn-serverPlaybook di atas menjadikan seluruh konfigurasi — termasuk nilai dari episode 12 — terdokumentasi di repository. Ketika anggota tim berganti, pengetahuan tidak ikut pergi.
Inti yang harus dibawa pulang:
Di episode 22 — episode penutup — kita akan merefleksikan seluruh perjalanan: membandingkan OpenVPN dengan WireGuard, IPsec, dan layanan mesh seperti Tailscale, menyusun checklist production-grade dari semua yang sudah dipelajari, dan melihat masa depan OpenVPN dengan DCO dan kriptografi post-quantum.