Certificate Authority (CA) adalah sebuah institusi yang mengeluarkan dan melakukan verifikasi terhadap digital certificate. Digital certificate adalah sebuah sertifikat untuk memastikan kepemilikan sebuah identitas digital, dalam hal ini adalah public key. Jadi CA sebenarnya adalah sebuah institusi yang memastikan keaslian sebuah identitas digital.
Hal ini sam dengan keadaan di dunia nyata, bahwa untuk memastikan identitas seseorang, digunakan KTP. Misalnya kita mau buat rekening di bank, untuk memastikan identitas kita harus menunjukan KTP. KTP dikeluarkan oleh Dinas Kependudukan dan Catatan Sipil. Dinas ini juga yang melakukan verifikasi pada saat pembuatan KTP.
Certificate Authority ini juga bertugas memberikan sertifikat pada ssl/tls. Secure Socket Layer (SSL) atau dikenal juga dengan istilah Transport Secure Layer (TSL) adalah sebuah protocol yang
bertugas memastikan keaslian suatu layanan, entah itu layanan Web, Mail, ataupun FTP.
Setelah mengetahui apa itu Certificate Authority, sekarang kita akan mempelajari cara konfigurasi CA di Debian. Di dalam konfigurasi ini, ada beberapa ketentuan, diantaranya :
- Mengatur atribut CA sebagai berikut :
a). Country code diatur ke ID
b). Organisasi diatur ke LKS2018
- Buat sertifikat CA root
- Simpan sertifikat root pada direktori/folder "/cert".
Baik, sekarang kita mulai konfigurasinya di debian. Kita buat folder /cert terlebih dahulu. Ketikkan perintah mkdir /cert.
bertugas memastikan keaslian suatu layanan, entah itu layanan Web, Mail, ataupun FTP.
- Mengatur atribut CA sebagai berikut :
a). Country code diatur ke ID
b). Organisasi diatur ke LKS2018
- Buat sertifikat CA root
- Simpan sertifikat root pada direktori/folder "/cert".
Baik, sekarang kita mulai konfigurasinya di debian. Kita buat folder /cert terlebih dahulu. Ketikkan perintah mkdir /cert.
Lalu kita masuk ke folder tersebut dengan perintah cd /cert.
Untuk mengajukan permohonan agar di tanda tangani oleh CA kita membutuhkan 2 file yaitu private key dan file permohohonan yang disebut (CSR). Private key adalah sebuah kunci enkripsi yang hanya boleh diakses oleh pemilik kunci itu sendiri sedangkan atau CSR adalah sebuah file atau dokumen permintaan kepada CA yang nantinya di tandatangani oleh CA.
Jadi, sekarang kita buat file private key nya terlebih dahulu. Untuk nama private key nya boleh bebas. Disini saya beri nama client.key. Ketikkan perintah openssl genrsa -out client.key 4096.
Seperti ketentuan sebelumnya, kita harus mengedit kode negara (country code) menjadi ID dan organisasi (organization) menjadi LKS2018. Kita mengedit atribut tersebut di file /etc/ssl/openssl.cnf. Jadi ketikkan perintah nano /etc/ssl/openssl.cnf.
Untuk mempermudah pencarian atribut yang akan di edit, kita bisa melakukan pencarian kata yang berada di dekat atribut tersebut. Disini kata yang saya gunakan adalah "name ]". Jadi kita tekan ctrl + w, ketikkan name ], dan enter.
Dan sekarang kita sudah sampai di tempat atribut yang akan kita edit. Ada 2 target, yaitu :
- countryName_default = AU (kode negara)
- 0.organizationName_default = Internet Widgits Pty Ltd (nama organisasi)
Dan kita edit/ubah kedua target tadi sesuai yang telah ditentukan sebelumnya. Target pertama ubah menjadi ID, dan target kedua ubah menjadi LKS2018. Setelah itu simpan konfigurasinya dengan menekan tombol ctrl + x, y, enter.
Sekarang kita buat file CSR. Untuk nama juga bebas, disini saya menggunakan nama client.csr. Ketikkan openssl req -new -key client.key -out client.csr. Client.key yang diketikkan tadi adalah nama private key yang sudah dibuat sebelumnya. Lalu isikan keterangan yang dibutuhkan, diantaranya :
- Country Name (2 letter code) = kode negara sesuai atribut yang sudah ditentukan. Karena
sebelumnya kita sudah mengedit country namenya di file openssl.cnf tadi, jadi kita tidak perlu
mengetikkan apa - apa lagi, karena sudah terisi otomatis dengan bacaan [ID]. Jadi tekan saja enter.
- State or Province Name (full name) (Some-State) = bisa diisi dengan nama provinsi kita, misalnya
Bali.
- Locality Name (eg, city) [] = nama kota kita, misalnya Singaraja.
- Organization Name (eg, company) [LKS2018] = nama organisasi yang juga diisi sesuai ketentuan.
Dan kita juga tidak perlu mengetikkan apapun lagi karena sudah mengeditnya di file openssl.cnf,
dan akan terlihat otomatis. Just press enter.
- Organizational Unit Name (eg, section) [] = nama unit organisasi. Ini bisa diisi bebas, seperti saya
mengisi dengan SMK.
- Common Name (e.g. server FQDN or Your name) [] = silahkan diisi bebas, misalnya situs web
yang akan menerima Certificate Authority ini. Disini situs web yang saya buat adalah inaskills.net,
jadi saya menambahkan situs tersebut.
- Email Address [] = alamat email, diisi bebas, misalnya admin@inaskills.net.
Setelah mengisi semua keterangan diatas, kita diminta untuk membuat atribut tambahan, yaitu A challenge password dan An optional company name. Tapi kita bisa melewati kedua atribut ini, tekan saja enter. Dan jadilah file CSR kita.
Untuk memastikan bahwa file private key dan file csr sudah dibuat, kita bisa melihat daftar direktori tempat pembuatan kedua file tersebut, dengan menggunakan ls. Dan terlihatlah filenya.
Setelah membuat file csr dan private key, sekarang membuat Certificate Authority. Tapi buat dulu file dan folder yang diperlukan oleh CA. Buat folder untuk CA terlebih dahulu, namanya bebas, asal mudah diingat. Misalnya nama foldernya "CA", ketikan perintah mkdir CA. Lalau masuk ke direktori tersebut dengan perintah cd CA.
Baru kita buat file dan folder lain yang dibutuhkan oleh CA. ketikkan :
#mkdir certs newcerts crl
#touch index.txt
#echo 0000 > serial
Lalu lihat daftar folder CA-nya, sudah ada apa belum folder dan file yang baru saja dibuat. Ketikkan ls, dan hasilnya = ada.
Sekarang kita buat private key yang dibutuhkan oleh file config CA nantinya. Nama private key nya bebas, misalnya "CA.key". Ketikan openssl genrsa -out CA.key 4096.
Lalu kita buat CA root (ini juga masuk dalam ketentuan yang sudah saya buat tadi). Disini saya menggunakan nama "CA.crt". Kalo teman - teman punya nama lain, silahkan... Ketikkan openssl req -x509 -new -key CA.key -out CA.crt -days 7200. CA.key disini adalah nama private key CA yang sudah dibuat tadi.
"-days 7200" menunjukkan waktu valid certificate root, yaitu selama 7200 hari. Untuk waktu ini juga bisa dibuat bebas. Setelah itu isi informasi yang di perlukan untuk CA root-nya. Sama seperti saat membuat client.csr sebelumnya.
Semua yang dibutuhkan oleh file CA sudah jadi dan sekarang kita membuat sebuah file config CA yang nantinya digunakan untuk menandatangani file csr yang di ajukan oleh client. Kita kembali ke direktori /cert terlebih dahulu. Ketikkan cd /cert.
Membuat file config CA adalah dengan menyalin data yang ada pada file openssl.cnf ke file config CA ini. Ketikkan cp /etc/ssl/openssl.cnf CA.conf. Nama "CA.conf" bisa diganti dengan nama apapun, yang penting formatnya *.conf.
Lalu kita masuk ke CA.conf tadi. Ketikkan nano CA.conf.
Sekarang kita lakukan sebuah pencarian kata yang dekat dengan target kita. Disini kita tekan ctrl + w, lalu ketikkan "dir".
Disini kita mengisi atau mengubah beberapa data, karena tujuan kita sekarang adalah memasukkan private key dan certificate ke dalam daftar konfigurasi. Disini ada 5 yang harus di edit/ubah, diantaranya :
- dir = direktori/folder penyimpanan semua file CA. Karena tadi saya membuatnya di direktori /CA,
jadi direktori tersebut yang saya tambahkan.
- certificate = nama CA root yang sudah dibuat. Tadi saya membuatnya dengan nama CA.crt.
- private_key = nama private key untuk CA rootnya, yang mana tadi saya membuat dengan nama
CA.key.
- default_md = sha256 artinya kita menggunakan encryption yang lebih kuat dari sha1 karena
beberapa browser tidak support sha1.
- policy = ganti policy_match menjadi policy_anything.
Jika sudah mengedit seperti demikian, simpan konfigurasinya.
Sekarang saatnya kita melakukan penandatanganan file csr yang sudah di ajukan oleh client. Ketikkan openssl ca -config CA.conf -in client.csr. Client.csr adalah file csr yang sudah saya buat diawal-awal konfigurasi. Masih ingat kan, teman-teman ? :)...
Lalu kita akan mendapatkan 2 pertanyaan. Pertama pertanyaan apakan kita akan menandatangani sertifikat yang sudah dibuat ? Ketikkan y untuk menandatangani. Jika kita memilih y (yes), maka muncul pertanyaan berikutnya, "1 dari 1 permintaan sertifikat tersertifikatsi, lakukan ?". Ketik juga y.
Penandatangan sertifikat pun berhasil dilakukan.
Setelah melakukan penandatangan, muncul sertifikat baru yang sudah ditanda tangani oleh CA, yang berada di direktori CA/newcerts. Untuk membuktikannya, kita bisa melihatnya dengan mengetikkan ls CA/newcerts. Dan terlihatlah sertifikat tersebut, yang bernama 00.pem.
Sekarang untuk memudahkan kita dalam mengingat sertifikat tersebut, kita ubah namanya sesuai keinginan, misalnya client.crt. Dan kita simpan di direktori /cert. Ketikkan mv CA/newcerts/00.pem client.crt. (Ini dilakukan di direktori /cert).
Dan saatnya melihat sertifikat yang sudah diubah namanya dan dipindahkan. Di direktori /cert, ketikkan ls. Dan terlihatlah sertifikat client.crt nya. Untuk file yang lain bisa dihapus, seperti client.key nya, karena sudah tidak dibutuhkan lagi. Tapi disini saya biarkan saja, biar nggak capek. Hehe...
Dan itulah informasi mengenai konfigurasi Certificate Authority.
Sekarang, jika kita ingin menginstal root sertifikatnya di client, kita harus menyalin CA root nya ke direktori /var/www. Karena kita akan mendownloadnya melalui web, jadi kita harus menyimpan CA nya di direktori yang berhubungan dengan web server.
Kita masuk dulu ke direktori tempat CA rootnya, yaitu di direktori /cert/CA. Disini saya tidak sedang berada di direktori /cert, jadi saya ketikkan cd /cert/CA. Lihat dulu CA.crt nya, ada apa tidak ? :D. Kalau sudah ada, saatnya menyalin, dengan mengetikkan cp CA.crt /var/www. O iya, sebelum melakukan penyalinan ini, pastikan kalian sudah menginstal paket web servernya, dalam hal ini adalah apache2. Setelah itu kita restart apache2nya.
Sekarang kita menuju client. Di browser, ketikkan ip address server/CA.crt. Misalnya 10.10.10.1/CA.crt.
Dan CA rootnya ter-download.
Untuk menginstalnya, pilih Open.
Choose Open again.
Pilih Install Certificate.
Pilih Current User -> Next.
Untuk Certificate Store, pilih Place all certificates in the following store, lalu Browse.
Tujuan kita disini adalah membuat agar sertifikat yang terinstall adalah sertifikat terpercaya. Jadi, kita pilih Trusted Root Certificate Authorities, lalu OK.
Pilih Next.
Dan sertifikatnya berhasil diletakkan pada CA root terpercaya. Pilih Finish.
Jika muncul Security Warning berisi pertanyaan apakah kita ingin menginstal sertifikat ini, pilih Yes.
Dan import sertifikat berhasil. Pilih .
Choose OK again.
Dan selesai sudah konfigurasi Certificate Authority serta penginstalannya di komputer client. Semoga dapat membantu teman - teman yang ingin mengkonfigurasi CA ini. Mohon maaf jika ada kekurangan pada informasi saya ini. Terima kasih karena telah berkunjung ke Education And Entertaiment ini. Sampai jumpa di lain kesempatan...:)
Dalam membuat postingan ini saya juga dibantu oleh beberapa situs, diantaranya :
- http://julismail.staff.telkomuniversity.ac.id/tentang-certificate-authority/
- https://fathsite.blogspot.co.id/2017/02/pengertian-dari-certificate-autority-ca.html
- https://www.mastahit.com/konfigurasi-certificate-authority-dan-ssl-di-linux-debian-dengan-openssl/
6 Komentar
kak, aku ga bisa nandatanganin client.csr nya,
BalasHapusopenssl ca -config CA.conf -in client.csr
soalnya katanya si index.txt ini bukan file atau direktori.
error warning
Using configuration from CA.conf
140550952769280:error:02001002:system library:fopen:No such file or directory:../crypto/bio/bss_file.c:72:fopen('./CA/index.txt','r')
140550952769280:error:2006D080:BIO routines:BIO_new_file:no such file:../crypto/bio/bss_file.c:79:
mohon bales ya kak aku lagi butuh banget solusinya ini
Wduh, mohon maaf bnget gan. Sya sdh lama nggak utak - atik debian server. Jdinya saya nggak tau dimana permasalahanya. Cba cri di stus lain aja. Maafff....
HapusSaya nyoba gitu juga gimana ya soulusinya
HapusMhon maaf gan, sya sdh lama nggak otak-atik debian. Sudah lupa semua. Mungkin bisa mencari di situs lain.
Hapuswork gan, tapi kalau crtnya ko engak bisa di jadiin ssl di web ya?
BalasHapusKlo ada masalah gtu... Kalian isi bagian dir nya itu pake /cert/CA
BalasHapusGunakan bahasa yang sopan saat berkomentar. Jangan melakukan spam. Komentar anda tidak segera dipublikasikan, melainkan harus menunggu persetujuan terlebih dahulu.
Please comment politely and DO NOT SPAM. Your comment will not be published immediately. It must wait for approval first.