Membangun CA Production Awal (Bagian 5)

Membuat End Entity

Sekarang CA dan Profile sudah jadi, Kita bisa membuat entitas pertama kita. Setelah memasuki halaman ‘Add Entity”, Plih nama End Entity yang sudah kita buat sebelumnya. Maka field akan berisi informasi dari profil tersebut:

Halaman End Entity

Misalkan kita menggunakan profile “Sertifikat untuk TLS” yang sudah kita buat sebelumnya, hanya informasi ini yang akan dibutuhkan sebelum membuat entitas ini:

  • End Entity Profile: Sertifikat untuk TLS
  • Username: perangkat.perusahaanlo.com
  • Email Address: Perangkat@perusahaanlo.com
  • CN: perangkat.perusahaanlo.com
    FQDN dari perangkat
  • Certificate Profile: Sertifikat untuk TLS
  • CA: rootca.perusahaanlo.com
    Nama CA yang kita buat di langkah sebelumnya.
  • Token: User Generated
    User bisa memilih apakah ingin memilih token berupa .JKS atau .p12

Pilih “Add” untuk menambahkan Entitas.

ketika entitas sudah ditambahkan, kita akan melihat entitas baru terdaftar di bagian bawah dari halaman tersebut.

Review OpenSSL – Perkenalan

EJBCA mengharuskan kita untuk mengajukan sebuah CSR (Certificate Signing Request) sebelum mengeluarkan sebauh sertifikat. tetapi itu tidak ada interface untuk melakukannya. Cara paling mudah untuk menghasilkan sebuah CSR adalah dengan menggunakan OpenSSL, yang memiliki kemampuan untuk menghasilkan CSR dengan menggunakan algoritma RSA atau EC. Saya pikir ada baiknya jika kita juga mereview kegunaan dari OpenSSL ini.

Meskipun sempat didera oleh bug “HeartBleed” (namun sudah berhasil ditangani), OpenSSL tetap dan akan terus menjadi rajanya enkripsi open source. Fokus perintah OpenSSL yang akan dibahas kali ini adalah hanya yang terkait dengan fungsi CSR.

Tahap pertama yang perlu kita lakukan adalah melakukan pengecekkan pada versi openssl pada server kita. caranya:

openssl version

dan keluarannya seperti ini:

versi openssl

Catatan, kalau versi openssl anda masih versi 1.0.1 sampai 1.0.1f, segera update karena versi tersebut vulnerable.

Review OpenSSL – Membuat sebuah RSA CSR

kita asumsikan bahwa enkripsi EC kemungkinan tidak diimplementasikan oleh beberapa perangkat atau semua di jaringan kita, jadi CSR pertama adalah untuk sebuah sertifikat yang menggunakan enkripsi RSA 2048-bit dan sebuah algoritma penandatanganan SHA-256. Perintah berikut akan membuat sebuah Kunci Privat yang baru, dan termasuk sebuah CSR baru:

openssl req -newkey rsa:2048 -nodes -sha256 -keyout server.key -out server.csr

Berikut penjelasan untuk syntax di atas:

  • Req → merupakan sebuah permintaan (Request).
  • -newkey rsa:2048 → sebuah kunci privat yang akan dibuat dengan menggunakan algortima RSA 2048-bit, beserta CSR baru.
  • -nodes → Kunci privat yang dibuat oleh perintah ini akan tidak terenkripsi.
  • -sha256 → Sertifikat yang yang diminta dalam CSR akan menggunakan algoritma penandatanganan SHA-256.
  • -keyout server.key → Kunci Privat yang baru akan disimpan kedalam file yang bernama server.key
  • -out server.csr → CSR baru akan disimpan dengan nama server.csr

Sekarang mari kita lihat isi dari server.key tersebut:

Server.key

Kemudian sekarang kita lihat isi dari server.csr:

server.csr

Dalam pembuatan CSR sebenarnya akan ada sebuah prompt yang meminta beberap field data untuk diisi. Namun field-field tersebut akan diabaikan oleh EJBCA delama proses pembuatan sertifikat karena kita telah menonaktifkan fungsi “Overrides” dalam Certificate Profile.

Review OpenSSL – Membuat EC CSR

OpenSSL sekarang mendukung Algoritma Elliptic Curve (EC). Untuk mengetahui apa saja yang disupport oleh versi OpenSSL kalian, jalanka perintah berikut:

openssl ecparam -list_curves

secp112r1 : SECG/WTLS curve over a 112 bit prime field
  secp112r2 : SECG curve over a 112 bit prime field
  secp128r1 : SECG curve over a 128 bit prime field
  secp128r2 : SECG curve over a 128 bit prime field
  secp160k1 : SECG curve over a 160 bit prime field
  secp160r1 : SECG curve over a 160 bit prime field
  secp160r2 : SECG/WTLS curve over a 160 bit prime field
  secp192k1 : SECG curve over a 192 bit prime field
  secp224k1 : SECG curve over a 224 bit prime field
  secp224r1 : NIST/SECG curve over a 224 bit prime field
  secp256k1 : SECG curve over a 256 bit prime field
  secp384r1 : NIST/SECG curve over a 384 bit prime field
  secp521r1 : NIST/SECG curve over a 521 bit prime field
  prime192v1: NIST/X9.62/SECG curve over a 192 bit prime field
  prime192v2: X9.62 curve over a 192 bit prime field
  prime192v3: X9.62 curve over a 192 bit prime field
  prime239v1: X9.62 curve over a 239 bit prime field
  prime239v2: X9.62 curve over a 239 bit prime field
  prime239v3: X9.62 curve over a 239 bit prime field
  prime256v1: X9.62/SECG curve over a 256 bit prime field
  sect113r1 : SECG curve over a 113 bit binary field
  sect113r2 : SECG curve over a 113 bit binary field
  sect131r1 : SECG/WTLS curve over a 131 bit binary field
  sect131r2 : SECG curve over a 131 bit binary field
  sect163k1 : NIST/SECG/WTLS curve over a 163 bit binary field
  sect163r1 : SECG curve over a 163 bit binary field
  sect163r2 : NIST/SECG curve over a 163 bit binary field
  sect193r1 : SECG curve over a 193 bit binary field
  sect193r2 : SECG curve over a 193 bit binary field
  sect233k1 : NIST/SECG/WTLS curve over a 233 bit binary field
  sect233r1 : NIST/SECG/WTLS curve over a 233 bit binary field
  sect239k1 : SECG curve over a 239 bit binary field
  sect283k1 : NIST/SECG curve over a 283 bit binary field
  sect283r1 : NIST/SECG curve over a 283 bit binary field
  sect409k1 : NIST/SECG curve over a 409 bit binary field
  sect409r1 : NIST/SECG curve over a 409 bit binary field
  sect571k1 : NIST/SECG curve over a 571 bit binary field
  sect571r1 : NIST/SECG curve over a 571 bit binary field
  c2pnb163v1: X9.62 curve over a 163 bit binary field
  c2pnb163v2: X9.62 curve over a 163 bit binary field
  c2pnb163v3: X9.62 curve over a 163 bit binary field
  c2pnb176v1: X9.62 curve over a 176 bit binary field
  c2tnb191v1: X9.62 curve over a 191 bit binary field
  c2tnb191v2: X9.62 curve over a 191 bit binary field
  c2tnb191v3: X9.62 curve over a 191 bit binary field
  c2pnb208w1: X9.62 curve over a 208 bit binary field
  c2tnb239v1: X9.62 curve over a 239 bit binary field
  c2tnb239v2: X9.62 curve over a 239 bit binary field
  c2tnb239v3: X9.62 curve over a 239 bit binary field
  c2pnb272w1: X9.62 curve over a 272 bit binary field
  c2pnb304w1: X9.62 curve over a 304 bit binary field
  c2tnb359v1: X9.62 curve over a 359 bit binary field
  c2pnb368w1: X9.62 curve over a 368 bit binary field
  c2tnb431r1: X9.62 curve over a 431 bit binary field
  wap-wsg-idm-ecid-wtls1: WTLS curve over a 113 bit binary field
  wap-wsg-idm-ecid-wtls3: NIST/SECG/WTLS curve over a 163 bit binary field
  wap-wsg-idm-ecid-wtls4: SECG curve over a 113 bit binary field
  wap-wsg-idm-ecid-wtls5: X9.62 curve over a 163 bit binary field
  wap-wsg-idm-ecid-wtls6: SECG/WTLS curve over a 112 bit prime field
  wap-wsg-idm-ecid-wtls7: SECG/WTLS curve over a 160 bit prime field
  wap-wsg-idm-ecid-wtls8: WTLS curve over a 112 bit prime field
  wap-wsg-idm-ecid-wtls9: WTLS curve over a 160 bit prime field
  wap-wsg-idm-ecid-wtls10: NIST/SECG/WTLS curve over a 233 bit binary field
  wap-wsg-idm-ecid-wtls11: NIST/SECG/WTLS curve over a 233 bit binary field
  wap-wsg-idm-ecid-wtls12: WTLS curvs over a 224 bit prime field
  Oakley-EC2N-3: 
    IPSec/IKE/Oakley curve #3 over a 155 bit binary field.
    Not suitable for ECDSA.
    Questionable extension field!
  Oakley-EC2N-4: 
    IPSec/IKE/Oakley curve #4 over a 185 bit binary field.
    Not suitable for ECDSA.
    Questionable extension field!
  brainpoolP160r1: RFC 5639 curve over a 160 bit prime field
  brainpoolP160t1: RFC 5639 curve over a 160 bit prime field
  brainpoolP192r1: RFC 5639 curve over a 192 bit prime field
  brainpoolP192t1: RFC 5639 curve over a 192 bit prime field
  brainpoolP224r1: RFC 5639 curve over a 224 bit prime field
  brainpoolP224t1: RFC 5639 curve over a 224 bit prime field
  brainpoolP256r1: RFC 5639 curve over a 256 bit prime field
  brainpoolP256t1: RFC 5639 curve over a 256 bit prime field
  brainpoolP320r1: RFC 5639 curve over a 320 bit prime field
  brainpoolP320t1: RFC 5639 curve over a 320 bit prime field
  brainpoolP384r1: RFC 5639 curve over a 384 bit prime field
  brainpoolP384t1: RFC 5639 curve over a 384 bit prime field
  brainpoolP512r1: RFC 5639 curve over a 512 bit prime field
  brainpoolP512t1: RFC 5639 curve over a 512 bit prime field

Tidak seperti CSR RSA, proses untuk membuat CSR EC membutuhkan 2 perintah OpenSSL terpisah. Kita akan membuat CSR dengan menggunakan curve prime256v1, yang merupakn curve yang paling umum diimplementasikan dalam Kriptografi EC.

perintah pertama adalah untuk membuat Kunci Privat:

openssl ecparam -out eckey.key -name prime256v1 -genkey

Perintah yang kedua membaca Kunci Privat dan membuat CSR. Ingat bahwa syntaxnya berbeda dari versi RSA “newkey” karena disini dibagi ke dalam dua bagian:

openssl req -new -key eckey.key -nodes -sha256 -outform pem -out ecreq.csr

Perintah yang baru adalah:

  • -new → Sebuah CSR baru akan dibuat.
  • -key eckey.key → CSR baru akan berasal dari Kunci Privat eckey.key
  • -outform pem → CSR yang baru akan ditulis dalam format PEM.

Sekarang mari kita lihat outputnya, Baik EC Key dan CSR nya jauh lebih kecil ukurannya bial dibanding dengan RSA yang ekuivalen dengannya (contoh di atas):

cat eckey.key

eckey.key yang dihasilkan dari perintah OpenSSL

cat ecreq.csr

ecreq.csr

Segitu dulu postingan di bagian ke 5 kali ini. Di postingan berikutnya akan membahas tentang issuing Certificate alias mengeluarkan sertifikat.

Pantau terus yaaa!!! 🙂

source: EJBCACENTOS

Facebook Comments Box