Introduction
Selamat datang kembali, setelah kurang lebih 2 bulan nggak bikin post lagi. Akhirnya hari ini saya bikin post lagi. Di post ini, saya akan membahas. Bagaimana cara membuat Root Certificate Authority, dan bagaimana cara membuat Self Signed Certificate.
Apa itu SSL Certificate
SSL adalah singkatan dari Secure Sockets Layer, adalah protokol keamanan kriptografi yang dirancang untuk memberikan keamanan ketika berkomunikasi melalui jaringan komputer. Contoh nya adalah ketika mengakses sebuah situs web yang sudah dilengkapi dengan SSL, pesan yang diterima dan dikirim melalui web browser akan dienkripsi, hanya penerima dan pengirim yang dapat melakukan dekripsi pesan yang telah di enkripsi.
Lalu apa itu Root Certificate Authority
Root Certificate adalah public key certificate untuk sebuah entitas yang menyimpan, mentandatangani, dan membuat digital certificate. Root Certficate Authority dapat memverifikasi kepemilikan dari sebuah sertifikat digital.
Cara kerja Root CA dan Self-Signed-Certificate
Sebuah client dapat mempercayai certificate dari sebuah root CA, otomatis client juga akan mempercayai sertifikat digital yang ditandatangani oleh root certificate yang telah di percaya oleh si client.
Tasks
Membuat Sertifikat Root CA
Generate Private Key Root CA
Generate terlebih dahulu private key menggunakan openssl
NOTEGanti “karya-agung_root_ca” menjadi nama file yang kamu inginkan
openssl genrsa -aes256 -out karya-agung_root_ca.key 4096
Request Root CA Certificate
Setelah private key di generate, kita langsung bisa request certificate dengan perintah
openssl req -x509 -new -noenc -key karya-agung_root_ca.key -sha256 -days 3650 -out karya-agung_root_ca.crt
Atau jika ingin mengisi beberapa paramater subject
openssl req -x509 -new -noenc -key karya-agung_root_ca.key -sha256 -subj "/C=ID/O=Karya Agung/CN=Karya Agung Trust R1 v2/" -days 3650 -out karya-agung_root_ca.crt
Membuat Sertifikat Untuk Domain
Selanjutnya kita akan membuat sertifikat untuk sebuah domain, nantinya sertifikat ini akan di sign menggunakan Root certificate yang tadi telah kita buat.
Generate Private Key
Jalankan perintah ini untuk membuat private key.
openssl genrsa -out karyaagung.local.key 2048
Generate file CSR (Certificate Signing Request)
Jalankan perintah ini, lalu isi dialog yang ditampilkan sesuai dengan kriteria.
TIPJika kamu tidak tahu harus jawab apa, silahkan isi pertanyaan tersebut dengan tanda titik ’.‘.
NOTEPada bagian “challenge password” kosongin aja
openssl req -new -key karyaagung.local.key -sha256 -out karyaagung.local.csr
Country Name (2 letter code) [AU]:ID
State or Province Name (full name) [Some-State]:Jakarta
Locality Name (eg, city) []:.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Karya Agung
Organizational Unit Name (eg, section) []:.
Common Name (e.g. server FQDN or YOUR name) []:karyaagung.local
Email Address []:.
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:.
Request Certificate
Setelah membuat file CSR, selanjutnya kita akan melakukan request certificate.
Edit file /etc/ssl/openssl.cnf
. Navigasi ke bagian paling bawah, lalu tambahkan.
[ karyaagung.local ]
subjectAltName = DNS:karyaagung.local,DNS:www.karyaagung.local
Pada bagian [ karyaagung.local ]
, ganti dengan domain yang ingin kamu gunakan. Lalu pada DNS:karyaagung.local
, ganti dengan FQDN yang kamu ingin gunakan.
TIPJika ingin menambahkan subjectAltName dalam satu domain yang sama, cukup berikan tanda koma
,
dan tambahkan FQDN yang akan didaftarkan seperti contoh diatas.
Setelah itu, jalankan perintah ini.
NOTEPada bagian
-extensions karyaagung.local
, gantikaryaagung.local
menjadi extensions domain kamu yang sudah kamu input di file/etc/ssl/openssl.conf
openssl x509 -req -in karyaagung.local.csr -CA karya-agung_root_ca.crt -CAkey karya-agung_root_ca.key -CAcreateserial -out karyaagung.local.crt -days 365 -sha256 -extfile /etc/ssl/openssl.cnf -extensions karyaagung.local
Masukkan password yang digunakan oleh file private key root CA.
Setelah generate, silahkan cek validasi sertifikat menggunakan perintah berikut
openssl x509 -in karyaagung.local.crt -text -noout
Mengimpor Root Sertifikat Ke Host Client
Silahkan liat artikel berikut untuk mengimpor file sertifikat root pada masing-masing perangkat client.
Kesimpulan
Tadi kita telah membuat Root CA Certificate, serta membuat dan mentandatangani SSL certificate menggunakan Root CA Certificate yang tadi sudah kita buat. Semoga post ini dapat membantu kalian yang sedang mencari tutorial seperti judul di post ini.