Cara Sederhana Membuat Root CA Self-Signed CA dengan OpenSSL



Memasang SSL pada sebuah website dapat mencegah dari pencurian data, karena data yang terkirim telah terenkripsi dengan bahasa yang tidak dapat diterjemahkan secara langsung oleh manusia dan hanya dimengerti oleh komputer. Langsung saja saya akan berikan caranya.
Berikut langkah-langkahnya :
    1. Buat folder sebagai tempat untuk menaruh sertifikat yang akan kita buat, misalkan akan saya taruh pada folder /ssl
      mkdir /ssl
    2. Masuk ke dalam folder yang kita buat, kemudian buat beberapa buah folder untuk menaruh key, csr, serta sertifikat
      mkdir certs newcerts private csr
    3. Salin file konfigurasi openssl ke dalam folder /ssl
      cp /etc/ssl/openssl.cnf /ssl/
      Edit file openssl.cnf, cari kata $dir ganti dengan path tempat dimana kita menaruh sertifikat yang akan kita buat, ganti dengan /ssl
    4. Buat file serial serta crlnumber, isikan dengan 00
      echo 00 > serial
      echo 00 > crlnumber
    5. Buat file kosong index.txt
      touch index.txt
    6. Generate rsa key dengan preshared key”qwerty” dan panjang bit 2048, buat beberapa untuk CA rootServer, dan Client
      openssl genrsa -des3 -passout pass:qwerty -out private/rootCA.key 2048
      openssl genrsa -des3 -passout pass:qwerty -out private/itclub.key 2048
      openssl genrsa -des3 -passout pass:qwerty -out private/client.key 2048
    7. Untuk menghapus preshared key agar tidak memerlukan password lagi saat ingin digunakan
      openssl rsa -passin pass:qwerty -in private/rootCA.key -out private/rootCA.key
      openssl rsa -passin pass:qwerty -in private/itclub.key -out private/itclub.key
      openssl rsa -passin pass:qwerty -in private/client.key -out private/client.key
    8. Buat CA root terlebih dahulu
      openssl req -config openssl.cnf -new -x509 -subj '/C=ID/O=ITClub/CN=ITClub Panca' -days 999 -key private/rootCA.key -out certs/rootCA.crt
    9. Buat CSR ( Certificate Signing Request ) untuk Server dan Client
      openssl req -config openssl.cnf -new -subj '/C=ID/O=ITClub/CN=ITClub Panca' -key private/itclub.key -out csr/itclub.csr
      openssl req -config openssl.cnf -new -subj '/C=ID/O=ITClub/CN=Client' -key private/client.key -out csr/client.csr
    10. Buat sertifikat untuk Server dan Client berdasarkan CSR yang sudah dibuat
      openssl ca -batch -config openssl.cnf -days 999 -in csr/itclub.csr -out certs/itclub.crt -keyfile private/rootCA.key -cert certs/rootCA.crt -policy policy_anything
      openssl ca -batch -config openssl.cnf -days 999 -in csr/client.csr -out certs/client.crt -keyfile private/rootCA.key -cert certs/rootCA.crt -policy policy_anything
    11. Export sertifikat Client
      openssl pkcs12 -export -passout pass:qwerty -in certs/client.crt -inkey private/client.key -certfile certs/rootCA.crt -out certs/clientcert.p12
Saya mencoba memasang sertifikat yang telah dibuat pada webserver apache, maka konfigurasikan webserver seperti berikut
SSLEngine on
SSLCertficateFile /ssl/certs/itclub.crt
SSLCertficateKeyFile /ssl/private/itclub.key
SSLCertificateChainFile /ssl/certs/rootCA.crt
SSLCACertficateFile /ssl/certs/rootCA.crt
SSLVerifyClient require
SSLVerifyDepth 10
Kemudian import rootCA.crt dan clientcert.p12 ke browser. Jika sudah maka tinggal membuka alamat website dengan menggunakan protokol HTTPS. Misalkan https://google.com,  jika tidak ada error atau warning berarti Root CA yang dibuat sudah benar atau berhasil. Selamat mencoba dan terima kasih.

Sekian dari saya Stephen Setiawan

0 comments