
Membuat Self-Signed Certificate sebetulnya sangat mudah. Tapi karena sintak atau penulisan perintah openssl yang lumayan panjang dan penuh opsi yang tidak mudah untuk dimengerti, jadinya terlihat sulit. Ditambah pula dengan banyaknya artikel yang membahas cara membuat self-signed certificate dengan sintak perintah yang diberikan terlihat berbeda. Lengkaplah sudah kebingungan Anda.
Nah di tulisan ini, saya mencoba merangkum itu semua, dan menjelaskan secara singkat, tapi mudah-mudahan bisa memberikan banyak pencerahan buat Anda tentang bagaimana membuat self-signed certificate.
Ditulisan saya sebelumnya, saya sudah menjelaskan tentang apa itu self-sign certificate dan apa bedanya dengan sertifikat berbayar. Silakan baca tulisan: Mengenal Self-Signed Certificate.
4 Langkah Membuat Self-Signed Certificate
Buat Private Key
Buat private key dengan perintah di bawah ini. Anda akan diminta memasukkan password untuk mengenkripsi private key yang baru saja dibuat.
openssl genrsa -des3 -out server.key 2048
Anda kemungkinan besar, nantinya akan membuat versi yang tidak dienkripsi. Karena ketika sertifikat ssl digunakan dalam konfigurasi apache misalnya, setiap service apache di restart, server akan menunggu Anda memasukkan password untuk private key.
Cara lain, biar lebih hemat waktu, buat private key yang tidak dienkripsi. Gunakan perintah di bawah ini.
openssl genrsa -out server.key 2048
Buat Certificate Signing Request
Buat Certificate Signing Request, atau sertifikat yang akan disiapkan untuk di tanda tangani nanti.
openssl req -new -key server.key -out server.csr
Anda akan diminta memasukkan beberapa entri seperti di bawah ini:
Country Name (2 letter code) [AU]: ID State or Province Name (full name) [Some-State]: DKI Jakarta Locality Name (eg, city) []: Jakarta Selatan Organization Name (eg, company) [Internet Widgits Pty Ltd]: PT. Ngadimin Sehat Selalu Organizational Unit Name (eg, section) []: Dept. Teknologi Informasi Common Name (eg, YOUR name) []: www.ngadimin.com Email Address []: cecep@ngadimin.com
Yang perlu Anda ingat, agar sertifikat Anda valid, dibagian Common Name isi dengan alamat dns yang akan diakses nanti oleh user. Jika user akan mengaksesnya dengan nama portal.perusahaan.com, maka isi dengan portal.perusahaan.com.
Sign Certificate Menggunakan Private Key
Tandatangani sertifikat menggunakan private key yang Anda buat sebelumnya (inilah makanya disebut self-sign certificate, karena dibuat dan ditandatangani menggunakan kunci yang sama).
Dalam contoh ini sertifikat akan valid selama 731 hari atau kira-kira 2 tahun. Silakan ganti dengan jumlah hari yang diinginkan. Saran jangan terlalu lama, dan jangan terlalu singkat.
openssl x509 -req -days 731 -in server.csr -signkey server.key -out server.crt
Buat versi Private Key yang tidak dienkripsi
Jika dilangkah sebelumnya Anda membuat private key yang dienkripsi (atau dilindungi dengan password), Anda bisa membuat versi yang tidak dilindungi dengan password menggunakan perintah di bawah ini.
openssl rsa -in server.key -out server.key.tidak-dienkripsi mv server.key server.key.dienkripsi mv server.key.tidak-dienkripsi server.key
Selanjutnya Anda akan menggunakan versi private key yang tidak dienkripsi, untuk mempermudah menjalankan secara otomatis service yang menggunakan ssl.
Perintah yang Lebih Ringkas
Langkah-langkah di atas, bisa diringkas menjadi satu perintah seperti di bawah ini. Bedanya Anda tidak membuat certificate signing request dulu, tapi langsung bikin private key dan certificate nya.
openssl req -days 731 -newkey rsa:2048 -keyout server.key -out server.crt
Tapi sepertinya Anda tetap harus menjalankan perintah di bawah ini, untuk membuat versi private key yang tidak dienkripsi.
openssl rsa -in server.key -out server.key.tidak-dienkripsi mv server.key server.key.dienkripsi mv server.key.tidak-dienkripsi server.key
Daftar Berkas Yang Dihasilkan
Baik menggunakan langkah-langkah yang lebih panjang, atau pakai perintah yang lebih ringkas, Anda kira-kira akan mendapatkan 4 berkas di bawah ini.
server.crt server.csr --> kalau pakai cara ringkas, berkas ini tidak akan ada server.key server.key.dienkripsi
Dari berkas di atas, yang akan digunakan oleh service, seperti apache, nginx atau service lainnya, hanya dua berkas. Yaitu server.crt dan server.key.
Untuk konfigurasi ssl untuk apache atau nginx akan dijelaskan ditulisan terpisah.






4 Komentar
Kalau udah liat code, jadi agak merinding, sy ga ngerti teman
maaf bro, ini buat nya dimana ya?
apa di ketik di notepad? ato gmn?
saya kurang ngerti cara membuatnya nih.
thanks!
mas, kalo signing CSR dari webserver gimana?
yg digenerate kan cuma file CSR doang, tanpa ada private key.
sementara kalo ngikutin tutor diatas harus pake private key tuk generate sertifikatnya…
thanks ya bantuannya.
mas ini, di ketik di command prompt atau gimana yaa? hayoo dongs mas. bantu saya. saya lagi butuh bantuan untuk skripsi. terimakasih.