Sertifikat OpenBSD CloudFlare CFSSL - Membuat Sertifikat PKI TLS Pribadi CA Untuk Klien Server DNS
· 2 min read · Label UnixBSDTool CloudFlare PKI/TLS CFSSL ditulis dalam bahasa Golang dan merupakan salah satu program open source yang dirilis oleh Cloudflare. CFSSL merupakan tool command line dan server HTTP API untuk menandatangani, memvalidasi, dan menggabungkan sertifikat TLS. Cloudflare sengaja merilis aplikasi CFSSL untuk memudahkan pembuatan sertifikat PKI/TLS. Performa CFSSL sungguh mengagumkan, karena mampu mencapai keseimbangan antara performa, keamanan, dan interoperabilitas.
CFSSL Public Key Infrastructure tidak hanya menjadi tool untuk agregasi sertifikat, tetapi juga dapat digunakan sebagai otoritas sertifikat. Hal ini dimungkinkan karena mencakup fungsi dasar pembuatan sertifikat, termasuk pembuatan kunci privat, pembuatan permintaan penandatanganan sertifikat. Aplikasi CFSSL sangat cocok untuk server DNS yang menjalankan protokol TLS.
Kehadiran CFSSL sangat membantu meningkatkan sistem keamanan jaringan internet Anda, karena sertifikat SSL dirancang untuk mengurangi beberapa masalah keamanan pada jaringan internet. Sertifikat SSL menghubungkan nama domain ke nama server dan nama bisnis ke lokasi, sehingga membentuk dasar kepercayaan di Internet dengan menjamin identitas situs web. Dengan kata lain, sertifikat tersebut berisi nama server, otoritas sertifikasi (CA) tepercaya yang memverifikasi keaslian sertifikat, dan kunci enkripsi publik server.
Dalam artikel ini, kita akan mempelajari cara membuat Cloudflare CFSSL di OpenBSD. Isi artikel tersebut meliputi proses instalasi Go, CFSSL dan proses konfigurasi serta pembuatan sertifikat.
GO Golang juga memiliki banyak PATH yang dapat Anda atur sendiri. Untuk detail lebih lanjut tentang proses pembuatan variabel lingkungan PATH, Anda dapat membaca artikel kami sebelumnya, yaitu "Install Go Lang di OpenBSD dengan PATH Environment".CFSSL Public Key Infrastructure tidak hanya menjadi tool untuk agregasi sertifikat, tetapi juga dapat digunakan sebagai otoritas sertifikat. Hal ini dimungkinkan karena mencakup fungsi dasar pembuatan sertifikat, termasuk pembuatan kunci privat, pembuatan permintaan penandatanganan sertifikat. Aplikasi CFSSL sangat cocok untuk server DNS yang menjalankan protokol TLS.
Kehadiran CFSSL sangat membantu meningkatkan sistem keamanan jaringan internet Anda, karena sertifikat SSL dirancang untuk mengurangi beberapa masalah keamanan pada jaringan internet. Sertifikat SSL menghubungkan nama domain ke nama server dan nama bisnis ke lokasi, sehingga membentuk dasar kepercayaan di Internet dengan menjamin identitas situs web. Dengan kata lain, sertifikat tersebut berisi nama server, otoritas sertifikasi (CA) tepercaya yang memverifikasi keaslian sertifikat, dan kunci enkripsi publik server.
Dalam artikel ini, kita akan mempelajari cara membuat Cloudflare CFSSL di OpenBSD. Isi artikel tersebut meliputi proses instalasi Go, CFSSL dan proses konfigurasi serta pembuatan sertifikat.
1. Install Go Lang
Karena CFSSL ditulis dalam bahasa go, maka syarat utama yang harus dipenuhi OepnBSD Anda adalah go terinstal di OpenBSD. Tidak ada salahnya jika kita mengulas sedikit proses instalasi Go. Untuk menginstal go di OpenBSD tidaklah terlalu sulit. Repositori go disediakan dalam paket PKG. Anda dapat langsung menjalankan instalasi tanpa harus mengunduh dari repositori lain.Install GO Golang
ns3# pkg_add go
Karena ada banyak versi GO yang telah dirilis, dan bahkan dapat dikatakan bahwa tidak ada sistem operasi yang sama yang menjalankan versi GO tersebut. Anda dapat memeriksa versi GO sebelum menjalankannya.
Check GO version
ns3# go version
go version go1.22.1 openbsd/amd64
2. Instal Clodflare CFSSL
Setelah Anda berhasil menginstal Golang, lanjutkan dengan menginstal CFSSL. Proses instalasi CFSSL tidak jauh berbeda dengan GO, tidak terlalu sulit. Hanya dengan satu perintah saja Anda dapat menginstal CFSSL di OpenBSD. Berikut ini adalah perintah untuk menginstal CFSSL.Install GO Golang
ns3# pkg_add cfssl
Anda dapat melihat versi CFSSL yang terinstal dengan perintah berikut.
Check CFSSL version
ns3# cfssl version
Version: 1.6.4
Runtime: go1.22.1
3. Konfigurasi Clodflare CFSSL
Secara default CFSSL menyediakan dua berkas konfigurasi dasar, yaitu:- CSR_configuration dan
- signing_configuration.
a. Buat ROOT CA
Langkah pertama untuk membuat sertifikat CA ROOT, kita buat direktori untuk menyimpan sertifikat tersebut, setelah itu kita lakukan konfigurasi untuk membuat kunci bagi CA itu sendiri.Create directory and key ROOT CA
ns3# mkdir -p /etc/ssl/cfssl
ns3# cd /etc/ssl/cfssl
ns3# cfssl print-defaults config > ca-config.json
ns3# cfssl print-defaults csr > ca-csr.json
Perintah cfssl di atas akan menghasilkan dua file format json:
- ca-config.json
- ca-csr.json
Script ca-config.json
{
"signing": {
"default": {
"expiry": "8760h"
},
"profiles": {
"intermediate_ca": {
"usages": [
"signing",
"digital signature",
"key encipherment",
"cert sign",
"crl sign",
"server auth",
"client auth",
"www auth"
],
"expiry": "8760h",
"ca_constraint": {
"is_ca": true,
"max_path_len": 0,
"max_path_len_zero": true
}
},
"peer": {
"usages": [
"signing",
"digital signature",
"key encipherment",
"client auth",
"server auth",
"www auth"
],
"expiry": "8760h"
},
"www": {
"expiry": "8760h",
"usages": [
"signing",
"key encipherment",
"www auth"
]
},
"server": {
"usages": [
"signing",
"digital signing",
"key encipherment",
"server auth"
],
"expiry": "8760h"
},
"client": {
"usages": [
"signing",
"digital signature",
"key encipherment",
"client auth"
],
"expiry": "8760h"
}
}
}
}
Script ca-csr.json
{
"CN": "Servers Intermediate CA",
"hosts": [
"kursor.my.id",
"www.kursor.my.id"
],
"key": {
"algo": "ecdsa",
"size": 256
},
"names": [
{
"C": "US",
"ST": "CA",
"L": "San Francisco",
"O": "OpenBSD Education",
"OU": "Tutor"
}
],
"ca": {
"expiry": "8760h"
}
}
Generate CA
ns3# cfssl gencert -initca ca-csr.json | cfssljson -bare ca -
- ca-key.pem (private key).
- ca.csr (certificate signing request).
- ca.pem (root CA public key)
b. Buat Intermediate CA
Sekarang kita lanjut ke langkah berikutnya, setelah kita memiliki root CA yang merupakan berkas terpenting. Root CA akan memungkinkan kita untuk membuat sertifikat perantara. Sertifikat perantara dapat digunakan seperti CA untuk membuat sertifikat perantara lainnya atau untuk langsung menandatangani sertifikat dan kunci. Dalam kasus ini, kunci Root CA disimpan di mesin offline, dan hanya digunakan saat Anda perlu menandatangani sertifikat CA perantara. Untuk membuat CA perantara, kita memerlukan berkas konfigurasi berikut.Create directory /etc/ssl/cfssl/intermediate and intermediate.json file
ns3# mkdir -p /etc/ssl/cfssl/intermediate
ns3# cd /etc/ssl/cfssl/intermediate
ns3# touch intermediate.json
Script /etc/ssl/cfssl/intermediate/intermediate.json
{
"CN": "Servers Intermediate CA",
"key": {
"algo": "ecdsa",
"size": 256
},
"names": [
{
"C": "US",
"ST": "CA",
"L": "San Francisco",
"O": "OpenBSD Education",
"OU": "Tutor"
}
],
"ca": {
"expiry": "8760h"
}
}
Generating intermediate public and private keys
ns3# cfssl gencert -initca intermediate.json | cfssljson -bare intermediate_ca
ns3# cfssl sign -ca /etc/ssl/cfssl/ca.pem -ca-key /etc/ssl/cfssl/ca-key.pem -config /etc/ssl/cfssl/ca-config.json -profile intermediate_ca intermediate_ca.csr | cfssljson -bare intermediate_ca
c. Membuat sertifikat akhir
Setiap server web atau server DNS memiliki sertifikat uniknya sendiri. Misalkan Anda ingin mendapatkan sertifikat untuk server DNS dengan nama domain seperti kursor.my.id. Hal pertama yang harus Anda lakukan adalah membuat Permintaan Penandatanganan Sertifikat (CSR) untuk server DNS Anda. Untuk membuat sertifikat, Anda harus membuat file baru seperti pada contoh di bawah ini.Create certificate DNS Server
ns3# mkdir -p /etc/ssl/cfssl/CADNSServer
ns3# cd /etc/ssl/cfssl/CADNSServer
ns3# touch kursor.my.id.json
Script /etc/ssl/cfssl/CADNSServer/kursor.my.id.json
{
"CN": "server.computingexample.com",
"key": {
"algo": "ecdsa",
"size": 256
},
"names": [
{
"C": "US",
"ST": "CA",
"L": "San Francisco",
"O": "OpenBSD Education",
"OU": "Tutor"
}
],
"hosts": [
"ns3.kursor.my.id",
"localhost"
]
}
Generate certificate DNS Server
ns3# cfssl gencert -ca /etc/ssl/cfssl/intermediate/intermediate_ca.pem -ca-key /etc/ssl/cfssl/intermediate/intermediate_ca-key.pem -config /etc/ssl/cfssl/ca-config.json -profile=server kursor.my.id.json | cfssljson -bare DNSServer1
4. Buat Bundling Certificates
Beberapa aplikasi berbasis server Apache, Java, dan DNS seperti Unbound mengharuskan sertifikat Root & Intermediate digabungkan dalam satu berkas. Cloudflare CFSSL dapat membuat sertifikat gabungan yang diperlukan oleh server dan klien.Anda dapat menggunakan perintah cfssl-mkbundle untuk membuat bundel root dan intermediate yang digunakan dalam memverifikasi sertifikat. Ini pada dasarnya menghubungkan sertifikat akhir dengan kunci publik CA intermediate dan CA Root. Ikuti panduan di bawah ini untuk membuat sertifikat bundel.
Generate certificate Bundle DNS Server
ns3# cd /etc/ssl/cfssl
ns3# cfssl-mkbundle -f /etc/ssl/cfssl/CADNSServer/DNSserverbundle.crt CADNSServer
Perintah di atas digunakan untuk membuat sertifikat bundel, dengan menggabungkan sertifikat yang ada /etc/ssl/cfssl dengan /etc/ssl/cfssl/CADNSServer. Dan hasil penggabungan akan disimpan di /etc/ssl/cfssl/CADNNSServer.
Generate certificate Bundle Intermediate
ns3# cd /etc/ssl/cfssl
ns3# cfssl-mkbundle -f /etc/ssl/cfssl/intermediate/Intermediatebundle.crt intermediate
5. Cara Menggunakan Sertifikat CFSSL di Unbound
Setelah Anda berhasil membuat sertifikat ROOT CA, buatlah sertifikat untuk server DNS. Sekarang kita akan menerapkan sertifikat tersebut ke server DNS. Dalam contoh ini kita akan menerapkan server DNS Unbound. Di direktori utama Unbound, Anda membuka berkas unbound.conf. Cari skrip TLS dan ganti dengan skrip di bawah ini.Script unbound.conf
tls-port: 853
tls-cert-bundle: "/etc/ssl/cfssl/CADNSServer/DNSserverbundle.crt"
tls-service-key: "/etc/ssl/cfssl/CADNSServer/DNSServer1-key.pem"
tls-service-pem: "/etc/ssl/cfssl/CADNSServer/DNSServer1.pem"
Test Unbound
ns3# dig -p 853 yahoo.com @192.168.5.3
6. Cara Menggunakan Sertifikat CFSSL di Server Web NGINX
Anda juga dapat menggunakan sertifikat CFSSL di server web NGINX. Di berkas host virtual Anda, masukkan skrip seperti contoh di bawah ini. (kami membuat port HTTPS di host virtual Nginx).Script /etc/nginx/vhostsSSL.conf
server {
listen 443;
listen [::]:443;
server_name datainchi.com;
root /var/www/htdocs/nginxssl;
ssl on;
ssl_certificate /etc/ssl/cfssl/intermediate/Intermediatebundle.crt;
ssl_certificate_key /etc/ssl/cfssl/intermediate/intermediate_ca-key.pem;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/htdocs/nginxssl;
}
}
Restart Nginx
ns3# rcctl restart nginx
TLS adalah fondasi kriptografi modern. Jika dikonfigurasi dengan benar, TLS menyediakan enkripsi yang kuat dan aman yang memverifikasi semua pihak yang terlibat dalam proses tersebut. CFSSL adalah alat yang sederhana, cepat, dan mudah digunakan untuk menjalankan SSL CA. CFSSL adalah sertifikat yang ditandatangani sendiri dan membantu mengamankan jaringan internet dengan membangun infrastruktur pertukaran kunci untuk koneksi terenkripsi.
Silahkan Berkomentar, Kakak...! Bunda...!
Posting Komentar