Membangun CA Production Awal (Bagian 4)

Membuat Certificate Authority

Seperti telah dijelaskan di beberapa postingan sebelumnya, Crypto Token adalah Struktur logikal dimana kunci sebuah CA diletakkan. Karena kita menggunakan “Soft” Crypto Token, kita bisa membayangkannya sebagai tabel-tabel dalam database kita.

  • karena bentuknya yang “Soft”, fakta ini membuat keamanan database menjadi sesuatu yang harus lebih diperhatikan.

kita punya 2 opsi untuk mendefinisikan Crypto Token yang digunakan oleh CA yang kita buat:

  • Membuat Crypto Token terlebih dahulu kemudian mengasosiasikannya dengan CA yang baru.

atau:

  • Mengizinkan EJBCA untuk membuat Crypto Token secara otomatis

Ada konsekuensi ketika kita mengizinkan EJBCA untuk membuat Crypto Token: Itu menggunakan kunci RSA 2048-bit dalam sertifikat CA, dan tidak memberikan kita sebuah opsi untuk memilih yang lain.

Saat sebuah sertifikat CA dikeluarkan, sertifikat tersebut tidak bisa dengan mudah di-update dengan sebuah kunci baru yang lebih kuat. Faktanya, hal tersebut memang tidak bisa dilakukan. Jadi kalau kita berharap menggunakan kunci yang lebih kuat untk CA kita, maka kita harus membuat Crypto Token tersebut secara manual.

Membuat Crypto Token sangatlah mudah. Pertama, masuk ke dalam interface Crypto Token:

Interface Crypto Token

Kemudian kita pilih “Create New” yang akan membawa kita ke halaman “New Token”:

Membuat Crypto Token baru

‘Authentication Code” adalah sebuah password yang digunakan untuk mengenkrip Crypto Token itu sendiri. Kita akan membutuhkan Authentication Code tersebut ketika memperbarui CA yang menggunakan Crypto Token tersebut. “Auto Activation” juga harus dicentang.

Crypto Token harus diisi dengan satu set kunci sebelum kita dapat menggunakannya:

Beberapa kunci yang ada dalam Crypto Token

Dalam contoh di atas, saya menambahkan beberapa kunci yang penting:

  • certSignKey – Digunakan untuk menandatangani sertifikat.
  • defaultKey – digunakan untuk semuanya.
  • testKey – digunakan untuk pengecekkan internal saja.

Pada contoh di atas juga, kita akan melihat sebuah key dengan nama “crlSignKey”. Kunci ini sudah tidak diperlukan lagi. Kita juga menambahkan sebuah kunci yang disebut “ec2561pKey” untuk tujuan uji coba, untuk menunjukkan bahwa kunci EC dapat dihasilkan dan digunakan oleh CA dengan sebuah RSA sebagai defaultKey.

Ketika selesai, kita akan melihat crypto token kita dengan label “Active”, tapi belum digunakan. Setelah ktia menghubungkan antara CA dengan Crypto Token, status tersebut akan berubah menjadi “Used”.

Crypto TOken yang berhasil dibuat tapi belum digunakan

Setelah kita membuat Crypto Token tersebut maka sekarang kita bisa membuat sebuah CA.

Halaman Certification Authority

Pada opsi ini, kita tidak punya pilihan untuk menggunakan CA yang sudah ada sebagai template.

Berikut ini adalah beberapa pengaturan yang akan kita gunakan untuk membuat CA yang saya beri nama “Real Root CA“:

  • Type of CA: X509
    Ini adalah standar untuk komunikasi internet
  • Signing Algorithm: Sha256WithRSA
    Pilih ini karena SHA-1 sudah tidak layak untuk digunakan.
  • Crypto Token: NamaKriptoToken
    Dibawah ini merupakan beberapa nama pada key (dari Crypto Token yang kita buat tadi) yang digunakan untuk tujuan standar:
    defaultkey: defaultKey
    certSignKey: certSignKey
    keyEncryptKey: – Use default key
    hardTokenEncrypt: – Use default key
    testKey: testKey
    Extended Service Key Specification: RSA 2048
  • Enforce Unique Serial Number: Enabled
    Kita akan memaksa agar sertifikat yang dikeluarkan selalu memiliki nomor seri yang unik.
  • Use Certificate Request History: Enabled
    Pada dasarnya ini untuk kepentingan audit.
  • Validity: 3652d
    Lamanya waktu CA ini akan valid
  • Subject DN: CN= ca.perusahaanlo.com, O=perusahaan lo, C=negara lo
    Ini adalah DN yang akan masuk ke dalam sertifikat CA. CN akan ada secara default tapi akan lebih baik jika kita juga menambahkan O dan C.
  • Signed By: Self Signed
    Karena ini akan menjadi Root CA baru, dia akan menandatangani sertifikatnya sendiri.
  • Subject Alternative Name:  dNSNme=nama.perusahaanlo.com
    Seperti yang sudah dibicarakan, ini adalah FQDN dari CA. Namun, dalam field ini, FQDN harus diawali dengan prefix “dNSName=“. Sepertinya, ini satu-satunya area dalam EJBCA dimana kita harus menulis prefix ini terlebih dahulu. “dNSName” dituangkan dalan RFC4985 untuk X.509 Subject Alternative Name.
  • Use Issuing Distribution Point on CRLs: Enabled
    Ini mengaktifkan sebuah field yang akan menampung URL untuk pengambilan CRL CA ini di CA’s own certificate.
  • Generate Default CRL Distribution Point: Generated, tetapi hapus “:8080” dari URL, dan ganti protokol dari “http://” ke “https://”
    Kita melakukan ini karena aturan pada firewall yang sudah kita tetapkan, yang memaksa semua request menggunakan HTTPS.
  • Generate Default CRL Issuer: Generated
    Jangan Edit string ini. ini harus menjadi DN kita.
  • CA Defined FreshestCRL Extension: Not Generated
    Kita tidak menggunakan “Delta CRL” dalam CA kita, jadi field ini tidak kita perlukan.
  • CA Issuer URI: Empty
    Ini opsi field yang dapat kita abaikan.
  • Default OCSP Service Locator: Generated, hilangkan “:8080” dan ganti “http://” dengan “https://”, alasannya sama seperti di atas.

Sekarang buat CA. Jika pembuatan CA gagal, tekan “back” di browser dan settingan kita akan kembali. perbaiki yang salah dan coba lagi.

Berikut ini kurang lebih tahapannya:

1. Membuat CA Baru
2. Tahapan Pertama: Type of CA, Signing Algorithm, Crypto Token
3. Tahapan Kedua: Enforce Unique Serial Number, Use Certificate Request History, Validity, Subject DN, Signed By, Subject Alternative Name
4. Tahapan Ketiga: Use issuing Distribution Point on CRLs, Generate Default CRL Distribution Point, Generate CRL Default Issuer, CA Defined FreshestCRL Extension, CA Issuer URI
5. Tahapan Keempat: Default OCSP Service Locator
Bukti kalau CA sudah berhasil dibuat
dan crypto token pun sudah terpakai

Setelah CA kita jadi, kita masih punya langkah terakhir sebelum CA ini berfungsi dengan baik. Kita harus mengaktifkan “Internal Health Check” pada halaman “CA Activation”:

Mengaktifkan Internal Health Check

Proses Health Check adalah sebuah pemeriksaan secara otomatis status dari suatu CA dimana sebuah sesi HTTPS melakukannya secara periodik. Akses ke URL healthcheck ini terbatas untuk localhost, dan secara default URL selalu mengembalikan string “ALLOK” (Seperti yang sudah didefinisikan di file ejbca.properties).

  • URL untuk OCSP juga melakukan health-checked, seperti yang ditulis dalam va.properties.

Okay sampai di situ dulu postingan kali ini. Semoga bisa membantu kalian dalam membuat sebuah CA.

Di postingan selanjutnya kita akan mencoba untuk membuat sebuah entitas akhir alias End Entity.

Terima Kasih 🙂

source: EJBCACENTOS

Facebook Comments Box

Comments are closed.