Langsung ke konten utama

Membuat Certificate Authority dengan OpenSSL

Untuk mempermudah hidup, OpenSSL menyediakan script untuk membuat direktori root CA secara otomatis yang berada di /usr/lib/ssl/misc/CA.pl (pada sistem operasi Debian).

1. Edit file /etc/ssl/openssl.cnf, sesuaikan dengan kebutuhan anda. Disini saya akan mengatur path direktori root CA ke /etc/ca, mengosongkan opsi stateOrProvinceName, dan mengubah beberapa default value.





2. Edit file /usr/lib/ssl/misc/CA.pl, cari variable "my $CATOP" dan arahkan ke direktori /etc/ca, sama seperti konfigurasi di /etc/ssl/openssl.cnf tadi.


3. Eksekusi script CA.pl dengan perintah
perl /usr/lib/ssl/CA.pl -newca
dan isi field sesuai kebutuhan.


4. Direktori /etc/ca akan terbuat, beserta isi sesuai dengan yang dibutuhkan direktori root CA. CA certificate terletak di /etc/ca/cacert.pem, salin file ini dengan format *.crt dan sebarkan ke PC client.


5. Buat certificate request untuk website. Isi field Common Name dengan domain website.

openssl req -out www.req -newkey rsa:1024 -keyout www.key -nodes

6. Beberapa web browser (seperti Google Chrome) memerlukan atribut Subject Alternative Name (SAN), yaitu nama/domain lain yang dapat menggunakan certificate file yang sama, pada certificate website. Oleh karena itu, pada saat signing kita akan menambahkan atribut SAN. Ada 2 metode untuk hal ini:

a. Menggunakan extension file
Pertama, kita buat file yang berisi atribut subjectAltName seperti berikut.
subjectAltName=DNS:itnsaskills.cloud,DNS:www.itnsaskills.cloud,DNS:localhost

Kemudian, kita sign certificate dengan mengarahkan opsi extfile ke file yang kita buat tadi.
openssl ca -in www.req -out www.crt -extfile san_file 
 

b. Metode one-liner
Untuk mempersingkat waktu, kita definisikan SAN langsung saat signing dengan perintah
openssl ca -in www.req -out www.key -extfile <(printf "subjectAltName=DNS:itnsaskills.cloud,DNS:www.itnsaskills.cloud,DNS:localhost")


7. Pada apache (atau nginx atau apalah service yang kalian pakai), arahkan certificate file dan certificate key file ke file yang telah kita buat tadi.


Jangan lupa instal root certificate di PC client. Jika berhasil, saat website diakses via HTTPS, tidak akan ada error. Gemboknya pun berwarna hijau.


Sekian dan terima kasih.

Komentar

Postingan populer dari blog ini

Classless Routing dan Perbedaannya dengan Classful Routing

Di postingan sebelumnya sudah dicontohkan topologi classful routing dan sedikit dijelaskan mengenai perbedaan informasi yang dikirimkan antara classful routing dengan classless routing. Di postingan kali ini akan ditunjukkan perbedaan antara protokol classful routing (RIPv1) dengan protokol classless routing (RIPv2) menggunakan topologi classless (VLSM) seperti di bawah ini. Dengan proses konfigurasi IP Address sebagai berikut: Router 1: Router 2: PC-1: PC-2: PC-3: PC-4: Uji coba ping antar PC beda subnet satu router (PC-4 ke PC-3): Di penjelasan mengenai classful routing, kita mengetahui bahwa protokol classful routing tidak mendukung VLSM karena informasi mengenai Subnet Mask tidak dikirimkan dalam proses routing. Lalu apa yang terjadi bila topologi VLSM seperti diatas menggunakan protokol classful routing? Kita akan menggunakan protokol RIPv1 untuk mengetahuinya. Konfigurasi RIPv1 di masing-masing router seperti di bawah