Episode ini membangun Public Key Infrastructure OpenVPN dari nol dengan Easy-RSA: inisialisasi PKI, membuat CA, mengeluarkan sertifikat server dan client, Diffie-Hellman parameters, CRL, dan alternatif seperti OpenSSL CLI serta XCA.

Di episode 3 kalian sudah punya tunnel yang hidup, tapi memakai key contoh yang bukan milik kalian. Sekarang waktunya membangun fondasi keamanan yang sesungguhnya: sebuah Public Key Infrastructure (PKI) lengkap dengan Easy-RSA.
PKI adalah sistem kepercayaan yang memungkinkan OpenVPN memverifikasi siapa lawan bicaranya. Tanpa PKI, siapa pun yang meniru server bisa mengelabui client kalian. Episode 4 membahas arsitektur PKI, langkah demi langkah membuat CA dan sertifikat, Diffie-Hellman parameters, pencabutan sertifikat, serta alternatif-alternatif yang bisa dipakai di organisasi besar.
Semuanya dimulai dari root CA: sebuah key pair yang menandatangani semua sertifikat lain. Siapa pun yang memegang root CA bisa mengeluarkan sertifikat yang dipercaya oleh seluruh jaringan, jadi key privat CA wajib disimpan sangat aman.
Dalam arsitektur production, root CA sering dijaga offline dan tidak pernah tersambung jaringan. Semua operasi penandatanganan dilakukan di luar mesin server.
Untuk skala besar, root CA menerbitkan satu atau lebih intermediate CA yang bertugas menandatangani sertifikat server dan client. Jika intermediate CA bocor, root CA tidak perlu dihancurkan — cukup pencabutan saja.
Arsitektur dua tingkat ini adalah praktik standar di perusahaan. Untuk lab series ini, satu root CA sudah cukup.
Setiap server dan client mendapatkan leaf certificate: sertifikat yang ditandatangani CA dan berisi identitas pemilik. Sertifikat server biasanya dibedakan dari client lewat peran, dan di client kalian memakai remote-cert-tls server untuk memverifikasinya.
Ketika client menerima sertifikat server, dia menelusuri rantai kepercayaan dari leaf certificate ke atas sampai menemukan CA yang dia percaya. Rantai inilah yang disebut certificate chain. Pemahaman ini penting karena kita akan menyusunnya secara fisik di direktori /etc/openvpn.
Siapkan workspace dan inisialisasi PKI di dalamnya:
mkdir -p /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
easyrsa init-pkiPerintah easyrsa init-pki membuat direktori pki/ dengan struktur default: private/ untuk key privat dan issued/ untuk sertifikat yang dikeluarkan.
Buat CA dengan passphrase agar key privat CA tidak terpajang mentah:
easyrsa build-caSaat diminta Common Name, isi misalnya lab-ca. Tampilkan isi sertifikat CA untuk memverifikasi:
openssl x509 -in pki/ca.crt -noout -subject -datesopenssl x509 -in pki/ca.crt -noout -subject -dates menampilkan subject dan masa berlaku CA. Catat tanggal kedaluwarsanya — kita akan memakainya untuk monitoring di episode 19.
Buat key pair server, lalu tanda tangani dengan CA:
easyrsa gen-req server nopass
easyrsa sign-req server servergen-req server nopass membuat key tanpa passphrase (dibutuhkan agar server bisa start otomatis), dan sign-req server server menandatangani request dengan peran server. Hasilnya ada di pki/issued/server.crt dan key-nya di pki/private/server.key.
Proses untuk client hampir sama, hanya perannya berbeda:
easyrsa gen-req client1 nopass
easyrsa sign-req client client1Salin berkas yang dibutuhkan ke tempat yang tepat di server:
cp pki/ca.crt pki/issued/server.crt pki/private/server.key /etc/openvpn/server/
chmod 600 /etc/openvpn/server/server.keychmod 600 pada server.key penting: key privat hanya boleh dibaca oleh pemiliknya.
Parameter Diffie-Hellman memungkinkan server dan client berbagi rahasia tanpa mengirimkannya. Bangkitkan di sisi server:
easyrsa gen-dh
cp pki/dh.pem /etc/openvpn/server/Untuk deployment modern, kalian juga bisa memakai key ecdh-curve yang lebih cepat — opsi ini kita bahas di episode 13.
Saat ada karyawan keluar atau device hilang, cabut sertifikatnya:
easyrsa revoke client1
easyrsa gen-crl
cp pki/crl.pem /etc/openvpn/server/Jangan lupa menambahkan crl-verify di konfigurasi server agar sertifikat yang dicabut ditolak. Prosedur pencabutan ini menjadi bagian penting dari checklist produksi di episode 21.
Sebelum dipakai, verifikasi bahwa sertifikat valid:
openssl verify -CAfile pki/ca.crt pki/issued/server.crtOutput server.crt: OK berarti rantai kepercayaan tersusun dengan benar.
Untuk kontrol penuh, kalian bisa membuat CA dan sertifikat langsung dengan openssl req dan openssl x509. Cara ini lebih verbose tapi berguna untuk memahami apa yang sebenarnya dilakukan Easy-RSA di belakang layar.
XCA menyediakan antarmuka grafis untuk mengelola CA, sertifikat, dan key. Cocok untuk tim yang kurang nyaman dengan CLI atau untuk audit visual seluruh PKI dalam satu project file.
Di organisasi besar, sertifikat bisa diintegrasikan dengan Active Directory/LDAP atau diterbitkan otomatis lewat ACME seperti yang dilakukan certbot. Pendekatan ini mengurangi pekerjaan manual dan memastikan tidak ada sertifikat yang terlupakan masa berlakunya.
Inti yang harus dibawa pulang:
init-pki, build-ca, gen-req, sign-req, gen-dh.client; server dengan peran server.chmod 600 dan disimpan terpisah dari sertifikat.easyrsa revoke lalu diperbarui CRL-nya.Di episode 5 selanjutnya kita akan membahas autentikasi: sertifikat vs pre-shared key vs username/password — cara kerja mutual TLS, penggunaan tls-auth, tls-crypt, dan tls-crypt-v2, sampai kombinasi dengan autentikasi username/password dan session token. Setelah episode ini, kalian bisa memilih lapisan autentikasi yang tepat untuk setiap skenario.