Post Pic

Membuat Self-Signed Certificate

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

15 November 2009

Kalau udah liat code, jadi agak merinding, sy ga ngerti teman

4 January 2010

maaf bro, ini buat nya dimana ya?
apa di ketik di notepad? ato gmn?
saya kurang ngerti cara membuatnya nih.

thanks!

heru
5 March 2010

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.

14 June 2010

mas ini, di ketik di command prompt atau gimana yaa? hayoo dongs mas. bantu saya. saya lagi butuh bantuan untuk skripsi. terimakasih.