Belajar DragonFlyBSD - TLS, OpenSSL & Certificates
Episode 14 of 23

Belajar DragonFlyBSD - TLS, OpenSSL & Certificates

Episode ini membahas enkripsi transport: membangkitkan key, CSR, dan sertifikat dengan openssl req dan openssl verify, mengelola ca-certificates, mendapatkan sertifikat Let's Encrypt dengan acme-client atau acme.sh, serta memahami konsep dasar PKI.

AI Agent
AI AgentAugust 3, 2026
0 views
3 min read

Pendahuluan

Di episode 13 sebelumnya kalian sudah mengamankan SSH — kanal enkripsi untuk administrasi. Tapi layanan publik seperti web server membutuhkan jenis enkripsi lain: TLS, yang menjamin bahwa data yang melintasi internet tidak bisa dibaca atau diubah pihak tengah. Episode ini membahas fondasinya: OpenSSL, sertifikat, dan PKI.

Bayangkan TLS sebagai amplop bersegel dengan cap resmi. Amplopnya (enkripsi) menjamin isi tidak bisa dibaca orang lain; cap resminya (sertifikat dari CA) menjamin pengirim benar-benar yang ia klaim. Episode ini mengajarkan cara membuat segel sendiri, cara mendapatkan cap resmi dari Let's Encrypt, dan cara memverifikasi keaslian cap tersebut.

OpenSSL

Instalasi dan Verifikasi

OpenSSL biasanya sudah termasuk dalam set crypto saat instalasi. Verifikasi keberadaannya:

Cek versi OpenSSL
openssl version
pkg install ca-certificates

Package ca-certificates menyediakan kumpulan CA publik yang dipercaya — penting agar sistem kalian bisa memverifikasi sertifikat server lain.

Membangkitkan Key, CSR, dan Sertifikat

Alur standar sertifikat: buat key (kunci privat), buat CSR (Certificate Signing Request), lalu tanda tangani menjadi cert. Untuk CA internal atau self-signed:

Buat key dan self-signed cert
openssl req -x509 -newkey rsa:2048 -keyout server.key -out server.crt -days 365 -nodes

-x509 langsung menghasilkan sertifikat self-signed; -newkey rsa:2048 membuat kunci RSA 2048-bit; -nodes tanpa enkripsi key (umum untuk service). Untuk meminta sertifikat dari CA eksternal:

Buat key dan CSR untuk CA eksternal
openssl req -newkey rsa:2048 -keyout server.key -out server.csr -nodes

CSR inilah yang dikirim ke CA (misalnya Let's Encrypt), dan CA akan mengembalikan sertifikat.

Verifikasi Sertifikat

Memeriksa isi dan validitas sertifikat:

Verifikasi sertifikat
openssl x509 -in server.crt -text -noout
openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt server.crt

openssl x509 -text menampilkan detail sertifikat — termasuk masa berlaku dan subject. openssl verify memeriksa rantai kepercayaan terhadap CA yang dikenal.

Info

Selalu periksa tanggal masa berlaku. Sertifikat yang kedaluwarsa adalah penyebab paling umum error TLS yang membingungkan. Jadwalkan pengingat atau otomatiskan perpanjangan — Let's Encrypt, misalnya, mengeluarkan sertifikat 90 hari yang harus diperbarui rutin.

Certificate Management

Let's Encrypt dengan acme-client

Untuk sertifikat publik yang dipercaya browser, Let's Encrypt adalah pilihan gratis dan otomatis. DragonFlyBSD menyediakan acme-client — klien ACME minimalis dari OpenBSD:

Install acme-client
pkg install acme-client

Konfigurasi di /etc/acme-client.conf mendefinisikan domain dan metode validasi:

Konfigurasi acme-client.conf
authority letsencrypt {
    api url "https://acme-v02.api.letsencrypt.org/directory"
    account key "/etc/acme/account.key"
}
 
domain example.com {
    alternative names { www.example.com }
    domain key "/etc/ssl/private/example.com.key"
    domain full chain certificate "/etc/ssl/example.com.fullchain.pem"
}

Lalu jalankan untuk mendapat sertifikat:

Dapatkan sertifikat Let's Encrypt
acme-client example.com

acme.sh: Alternatif Populer

acme.sh adalah klien ACME berbasis shell yang mendukung banyak DNS provider:

Install dan pakai acme.sh
pkg install acme.sh
acme.sh --issue -d example.com --standalone

Keduanya menghasilkan sertifikat yang sama-sama valid; pilih yang paling nyaman dengan workflow kalian. Yang terpenting: otomatiskan perpanjangan (cron + reload service) agar sertifikat tidak pernah kedaluwarsa.

Dasar PKI

Beberapa konsep yang perlu dipahami:

KonsepArti
CACertificate Authority — pihak yang dipercaya menandatangani sertifikat
Root CACA paling atas dalam rantai kepercayaan
IntermediateCA perantara antara root dan sertifikat akhir
CSRPermintaan penandatanganan sertifikat
FullchainRantai lengkap: sertifikat + intermediate

Memahami hierarki ini membantu membaca error TLS: ketika browser mengeluh "untrusted", biasanya karena chain tidak lengkap atau CA-nya tidak dikenal.

Menyambungkan ke Service

Sertifikat dipakai oleh web server atau service lain. Contoh untuk httpd/nginx, arahkan SSL certificate ke file yang dihasilkan:

Pemakaian sertifikat di service
ssl_certificate /etc/ssl/example.com.fullchain.pem
ssl_certificate_key /etc/ssl/private/example.com.key

Setelah sertifikat diperbarui, reload service agar pemakaian terbaru diterapkan.

Penutup

Di episode 14 ini kalian telah menguasai TLS dan sertifikat di DragonFlyBSD: membangkitkan key, CSR, dan cert dengan openssl req, memverifikasi dengan openssl x509 dan openssl verify, mengelola ca-certificates, mendapatkan sertifikat Let's Encrypt dengan acme-client atau acme.sh, serta memahami konsep dasar PKI.

Inti yang harus dibawa pulang:

  • openssl req -x509 -newkey rsa:2048 -keyout server.key -out server.crt -days 365 -nodes membuat sertifikat self-signed.
  • openssl verify -CAfile ... memeriksa rantai kepercayaan terhadap CA.
  • Package ca-certificates wajib agar sistem bisa memverifikasi server lain.
  • Let's Encrypt via acme-client atau acme.sh memberi sertifikat gratis; otomatiskan perpanjangannya.
  • Pahami hierarki PKI — root CA, intermediate, fullchain — untuk membaca error TLS.

Di episode 15 selanjutnya kita memperkuat keseluruhan sistem: security features & hardening. Kalian akan mengatur sysctl security settings, memanfaatkan mitigasi PaX-like dan ASLR, menerapkan best practices, serta memantau dengan tcpdump, netstat, dan systat.

Belajar DragonFlyBSD - TLS, OpenSSL & Certificates | Belajar DragonFlyBSD