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 -newcadan 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
Posting Komentar