Tutorial / 09 Jun 2026 22:24 WIB

Panduan Lengkap Membuat CA Server dengan OpenSSL

P

Tim Redaksi

POPAJA.com

BAGIKAN:
Panduan Lengkap Membuat CA Server dengan OpenSSL
- Iklan -
Daftar Isi (Klik untuk melihat)

Dalam mengelola infrastruktur TI modern, CA Server dengan OpenSSL menjadi solusi krusial untuk memastikan keamanan komunikasi antar perangkat di jaringan Anda. Banyak perangkat TI yang dikelola melalui web browser masih menggunakan sertifikat self-signed, yang tidak hanya menghasilkan peringatan kepercayaan yang mengganggu, tetapi juga membuka celah keamanan serius. Dengan menyiapkan CA (Certificate Authority) Server yang proper, Anda dapat menerbitkan sertifikat digital yang dipercaya oleh browser, sehingga koneksi HTTPS menjadi benar-benar aman dan terverifikasi.

Artikel ini akan membahas secara mendalam cara membuat CA Server menggunakan OpenSSL di Ubuntu, termasuk konfigurasi Root CA, penerbitan sertifikat server, dan integrasi dengan browser web. Panduan ini dirancang untuk administrator sistem dan profesional TI yang ingin membangun infrastruktur Public Key Infrastructure (PKI) internal yang robust.

- Iklan -

Apa Itu CA Server dan Mengapa Penting?

CA Server adalah server yang berfungsi sebagai Certificate Authority — entitas tepercaya yang menerbitkan, mengelola, dan memvalidasi sertifikat digital. Dalam konteks PKI, CA Server bertindak sebagai "notaris digital" yang menjamin keaslian identitas server dan mengenkripsi komunikasi.

Berikut perbandingan antara sertifikat self-signed dan CA-signed:

AspekSelf-Signed CertificateCA-Signed Certificate
Kepercayaan BrowserTidak dipercaya (muncul warning)Dipercaya secara otomatis
KeamananRentan terhadap man-in-the-middle attackTerlindungi dengan validasi chain of trust
Kemudahan IdentifikasiSulit membedakan server asli dari palsuMudah mengenali server yang mencurigakan
BiayaGratisGratis (internal) atau berbayar (public CA)

Persiapan Lingkungan Server CA

Untuk panduan ini, kami menggunakan Ubuntu Server sebagai platform CA Server. OpenSSL tersedia secara native di sebagian besar distribusi Linux, menjadikannya pilihan yang fleksibel dan andal.

Spesifikasi Minimum VM

  • CPU: 1 vCPU

    - Iklan -

  • RAM: 1 GB

  • Penyimpanan: 16 GB HDD

  • Jaringan: 1 vNIC dengan IP statis

Selama proses instalasi Ubuntu, disarankan untuk mengaktifkan enkripsi disk dan menginstal OpenSSH. Hindari menginstal aplikasi tambahan yang tidak diperlukan — prinsip minimal attack surface sangat penting untuk server keamanan.

Langkah-Langkah Membuat CA Server dengan OpenSSL

1. Konfigurasi Dasar dan Firewall

Setelah instalasi Ubuntu selesai, aktifkan UFW (Uncomplicated Firewall) dan buat direktori kerja untuk CA:

# Aktifkan UFW dan izinkan SSH
sudo ufw allow OpenSSH
sudo ufw enable

# Buat struktur direktori CA
sudo mkdir -p /etc/ssl/CA/{certs,crl,newcerts,private}
sudo chmod 700 /etc/ssl/CA/private
touch /etc/ssl/CA/index.txtecho 1000 | sudo tee /etc/ssl/CA/serial

2. Membuat Root CA Private Key

Private key Root CA adalah aset paling sensitif dalam infrastruktur PKI Anda. Gunakan passphrase yang kuat dan simpan di lokasi yang aman:

# Buat Root CA private key dengan enkripsi AES-256
sudo openssl genrsa -aes256 -out /etc/ssl/CA/private/ca.key.pem 4096

# Atur permission agar hanya root yang dapat mengakses
sudo chmod 400 /etc/ssl/CA/private/ca.key.pem

3. Membuat File Konfigurasi CA

Buat file konfigurasi openssl.cnf yang mendefinisikan parameter CA:

sudo tee /etc/ssl/CA/openssl.cnf <<'EOF'
[ ca ]
default_ca = CA_default

[ CA_default ]
dir               = /etc/ssl/CA
certs             = $dir/certs
crl_dir           = $dir/crl
new_certs_dir     = $dir/newcerts
database          = $dir/index.txt
serial            = $dir/serial
private_key       = $dir/private/ca.key.pem
certificate       = $dir/certs/ca.cert.pem
default_days      = 3650
default_md        = sha256

[ req ]
default_bits        = 4096
distinguished_name  = req_distinguished_name
string_mask         = utf8only
default_md          = sha256
x509_extensions     = v3_ca

[ req_distinguished_name ]
CN = My Root CA

[ v3_ca ]
subjectKeyIdentifier   = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints       = critical, CA:true
keyUsage               = critical, digitalSignature, cRLSign, keyCertSign
EOF

4. Membuat Sertifikat Self-Signed Root CA

Sertifikat Root CA ini akan menjadi anchor of trust untuk seluruh infrastruktur:

# Buat sertifikat Root CA yang berlaku selama 10 tahun
sudo openssl req -config /etc/ssl/CA/openssl.cnf \
  -key /etc/ssl/CA/private/ca.key.pem \
  -new -x509 -days 3650 -sha256 \
  -extensions v3_ca \
  -out /etc/ssl/CA/certs/ca.cert.pem \
  -subj "/C=ID/ST=Jakarta/L=Jakarta/O=MyOrg/OU=IT/CN=My Root CA"

5. Membuat Server Private Key dan CSR

Buat private key dan Certificate Signing Request (CSR) untuk server yang akan menggunakan sertifikat:

# Buat server private key
openssl genrsa -out /etc/ssl/CA/private/server.key.pem 2048

# Buat file konfigurasi untuk CSR (termasuk Subject Alternative Name)
# CATATAN: Chrome memerlukan SAN meskipun server hanya memiliki satu nama
tee /etc/ssl/CA/server_csr.cnf <<'EOF'
[req]
default_bits       = 2048
distinguished_name = req_distinguished_name
req_extensions     = v3_req

[req_distinguished_name]
CN = server.local

[v3_req]
subjectAltName = @alt_names

[alt_names]
DNS.1 = server.local
DNS.2 = www.server.local
IP.1  = 192.168.1.100
EOF

# Buat CSR
openssl req -config /etc/ssl/CA/server_csr.cnf \
  -key /etc/ssl/CA/private/server.key.pem \
  -new -sha256 -out /etc/ssl/CA/server.csr.pem \
  -subj "/C=ID/ST=Jakarta/L=Jakarta/O=MyOrg/OU=IT/CN=server.local"

6. Menandatangani CSR dengan Root CA

Proses signing mengubah CSR menjadi sertifikat yang valid dan dipercaya oleh CA Anda:

# Tandatangani CSR menggunakan Root CA
sudo openssl ca -config /etc/ssl/CA/openssl.cnf \
  -extensions v3_req \
  -days 365 -notext -md sha256 \
  -in /etc/ssl/CA/server.csr.pem \
  -out /etc/ssl/CA/certs/server.cert.pem \
  -batch

# Verifikasi sertifikat
openssl x509 -in /etc/ssl/CA/certs/server.cert.pem -text -noout

Mengonfigurasi Browser untuk Mempercayai Root CA

Setelah sertifikat server dibuat, langkah selanjutnya adalah mengimpor sertifikat Root CA ke browser agar tidak muncul peringatan keamanan.

Firefox

  1. Buka Settings → Privacy & Security

  2. Scroll ke bawah dan klik View Certificates

  3. Pada tab Authorities, klik Import

  4. Pilih file ca.cert.pem dan centang Trust this CA to identify websites

Brave / Chrome

  1. Buka Settings → Privacy & Security → Security

  2. Klik Manage certificates

  3. Pada tab Authorities, klik Import

  4. Pilih file ca.cert.pem dan berikan kepercayaan penuh

Pertimbangan Keamanan dan Best Practices

Berdasarkan pengalaman kami dalam mengelola infrastruktur PKI, berikut beberapa best practices yang perlu diperhatikan:

  • Simpan Root CA secara offline: Root CA sebaiknya tidak terhubung ke jaringan setelah proses signing selesai. Gunakan Intermediary CA untuk operasional harian.

  • Gunakan passphrase yang kuat: Private key Root CA harus dilindungi dengan passphrase minimal 20 karakter.

  • Rotasi sertifikat secara berkala: Meskipun sertifikat bisa dibuat dengan masa berlaku panjang, pertimbangkan untuk memperbaruinya setiap 1-2 tahun sesuai standar industri.

  • Catat semua penerbitan: File index.txt berisi log semua sertifikat yang diterbitkan — jaga file ini untuk audit trail.

  • Perhatikan dukungan SAN: Browser modern seperti Chrome tidak akan menerima sertifikat tanpa Subject Alternative Name (SAN), meskipun server hanya memiliki satu hostname.

Kesimpulan

Membangun CA Server dengan OpenSSL memberikan kontrol penuh atas infrastruktur keamanan jaringan internal Anda. Dengan mengikuti panduan ini, Anda dapat menghilangkan ketergantungan pada sertifikat self-signed yang berisiko dan membangun sistem PKI yang terstruktur. Proses ini memang memerlukan investasi waktu di awal, tetapi manfaatnya dalam jangka panjang — mulai dari keamanan yang lebih baik hingga kemudahan manajemen sertifikat — sangat signifikan. Mulailah dari Root CA yang solid, dan bangun hierarki kepercayaan yang scalable sesuai kebutuhan organisasi Anda.

FAQ

Apa perbedaan antara Root CA dan Intermediate CA?

Root CA adalah otoritas tertama dalam hierarki PKI yang sertifikatnya self-signed dan disimpan secara offline. Intermediate CA (atau Subordinate CA) diterbitkan oleh Root CA dan digunakan untuk operasional harian — menerbitkan sertifikat untuk server dan layanan. Jika Intermediate CA dikompromi, Root CA dapat mencabutnya tanpa mempengaruhi seluruh infrastruktur.

Mengapa sertifikat saya tetap ditolak oleh Chrome?

Chrome memerlukan ekstensi Subject Alternative Name (SAN) pada setiap sertifikat, bahkan jika server hanya memiliki satu hostname. Pastikan Anda menyertakan SAN dalam konfigurasi CSR menggunakan parameter req_extensions = v3_req dengan section [alt_names].

Berapa lama sertifikat Root CA sebaiknya berlaku?

Root CA umumnya dibuat dengan masa berlaku 10-20 tahun karena proses rotasinya kompleks. Sertifikat server yang diterbitkan sebaiknya memiliki masa berlaku lebih pendek (1-3 tahun) untuk mengurangi risiko jika terjadi kompromi.

Apakah aman menjalankan CA Server di virtual machine?

Ya, menjalankan CA Server di VM memberikan fleksibilitas dalam backup dan snapshot. Namun, pastikan VM tersebut memiliki akses jaringan yang sangat terbatas, gunakan enkripsi disk, dan pertimbangkan untuk menyimpan private key Root CA di perangkat terpisah yang tidak terhubung ke jaringan (air-gapped).

Bagaimana cara mencabut sertifikat yang sudah diterbitkan?

Gunakan perintah berikut untuk mencabut sertifikat dan membuat Certificate Revocation List (CRL):

# Cabut sertifikat
sudo openssl ca -config /etc/ssl/CA/openssl.cnf \
  -revoke /etc/ssl/CA/newcerts/1000.pem

# Buat CRL baru
sudo openssl ca -config /etc/ssl/CA/openssl.cnf \
  -gencrl -out /etc/ssl/CA/crl/ca.crl.pem
- Iklan -