Assalamualaikum Wr.Wb
Salam Sejahtera Bagi Kita Semua
Kali ini saya akan berbagi ilmu tentang:
Salam Sejahtera Bagi Kita Semua
Kali ini saya akan berbagi ilmu tentang:
Membuat Self-Signed Certificate dengan OpenSSL
A.Pengertian
Sudahkan teman-teman mensetting protokol HTTPS di Server kalian? Apakah teman-teman selalu mendapati pesan Warning yang selalu mengganggu? Ya itu terjadi karena kita menggunakan Self-Signed Certificate yang tidak memiliki data tentang Certificate Authority. Walau sebenarnya kita tetap mendapatkan koneksi yang terenkripsi berkat SSL meski selalu mendapati pesan Warning, namun ada baiknya kita memperbaiki kekurangan tersebut supaya menciptakan kebiasaan mengakses situs yang baik, tidak asal Add Exception. Nah umumnya Sertifikat Resmi yang sudah diakui urutan komponennya adalah sebagai berikut:
1.Root (Certificate Authority) -> 2. Intermediate (Certificate Issuer) -> 3. End User Certificate
Sedangkan Self-Signed Certificate umumnya hanya memiliki yang ketiga. Tidak mempunyai Root dan Intermediate Authority. Itulah sebabnya mengapa kalian akan terus menerus mendapatkan pesan Warning yang umumnya memberitahu bahwa Sertifikat yang kita gunakan tidak dikenali karena tidak memiliki komponen nomer 2 dan 3.
Jadi apakah kita bisa membuat sendiri ketiga komponen tersebut?
Bisa, dengan OpenSSL kita bisa membuat sendiri ketiga komponen diatas. Jadi intinya dengan OpenSSL kita dapat bertindak sebagai Root CA, Intermediate, dan juga sebagai End User.
B.Latar Belakang
Latar belakang saya karena saya ingin membuat HTTPS dengan sertifikasi saya sendiri
C.Maksud dan Tujuan
Maksud dan Tujuan saya ingin membuat HTTPS dengan sertifikat yang saya buat sendiri
D.Jangka Waktu
Jangka waktu saya dalam membuat sertifikat ini sekitar 1 Jam,tergantung pemahaman masing-masing
E.Alat dan Bahan
1.PC atau Laptop
Sudahkan teman-teman mensetting protokol HTTPS di Server kalian? Apakah teman-teman selalu mendapati pesan Warning yang selalu mengganggu? Ya itu terjadi karena kita menggunakan Self-Signed Certificate yang tidak memiliki data tentang Certificate Authority. Walau sebenarnya kita tetap mendapatkan koneksi yang terenkripsi berkat SSL meski selalu mendapati pesan Warning, namun ada baiknya kita memperbaiki kekurangan tersebut supaya menciptakan kebiasaan mengakses situs yang baik, tidak asal Add Exception. Nah umumnya Sertifikat Resmi yang sudah diakui urutan komponennya adalah sebagai berikut:
1.Root (Certificate Authority) -> 2. Intermediate (Certificate Issuer) -> 3. End User Certificate
Sedangkan Self-Signed Certificate umumnya hanya memiliki yang ketiga. Tidak mempunyai Root dan Intermediate Authority. Itulah sebabnya mengapa kalian akan terus menerus mendapatkan pesan Warning yang umumnya memberitahu bahwa Sertifikat yang kita gunakan tidak dikenali karena tidak memiliki komponen nomer 2 dan 3.
Jadi apakah kita bisa membuat sendiri ketiga komponen tersebut?
Bisa, dengan OpenSSL kita bisa membuat sendiri ketiga komponen diatas. Jadi intinya dengan OpenSSL kita dapat bertindak sebagai Root CA, Intermediate, dan juga sebagai End User.
B.Latar Belakang
Latar belakang saya karena saya ingin membuat HTTPS dengan sertifikasi saya sendiri
C.Maksud dan Tujuan
Maksud dan Tujuan saya ingin membuat HTTPS dengan sertifikat yang saya buat sendiri
D.Jangka Waktu
Jangka waktu saya dalam membuat sertifikat ini sekitar 1 Jam,tergantung pemahaman masing-masing
E.Alat dan Bahan
1.PC atau Laptop
2.OS GNU/Linux
3.Komponen OpenSSL
F.Langkah Kerja
1. Buat Direktori untuk Sertifikat kita nantinya di /root/ca. Juga buat struktur direktorinya
root@smkn1sawit:~# mkdir ca && cd ca
root@smkn1sawit:~/ca# mkdir certs crl newcerts private
root@smkn1sawit:~/ca# chmod 700 private
root@smkn1sawit:~/ca# touch index.txt && echo 1000 > serial
root@smkn1sawit:~/ca# mkdir intermediate && cd intermediate
root@smkn1sawit:~/ca/intermediate# mkdir certs crl csr newcerts private && chmod 700 private
root@smkn1sawit:~/ca/intermediate# touch index.txt && echo 1000 > serial
2. Buat Konfigurasi OpenSSL yang akan kita gunakan untuk Root CA nantinya.
root@smkn1sawit:~/ca# nano openssl.cnf
Isi Konfigurasinya dapat dilihat disini
Penjelasan mengenai parameter konfigurasinya dapat dilihat disini
3. Buat Root Key.
Root Key akan digunakan untuk membuat Sertifikat Root (CA). Dan juga pastikan diamankan dengan Passphrase atau kata kunci yang aman dan Jangan sampai File ini hilang.
root@smkn1sawit:~/ca# openssl genrsa -aes256 -out private/ca.key.pem 4096
root@smkn1sawit:~/ca# chmod 400 private/ca.key.pem
4. Buat Sertifikat Root (CA)
Disinilah Root Key akan digunakan. Yaitu untuk membuat Sertifikat Root, mengapa keamanan file ini penting? karena siapapun yang memiliki akses Root Key maka dia dapat menerbitkan sertifikat sendiri. Juga pastikan untuk memilih durasi Sertifikat Root yang agak lama untuk kadaluarsa Seperti durasi diatas 15 Tahun. Karena jika Durasi Sertifikat Root Habis maka Sertifikat dibawahnya juga ikut kadaluarsa.
root@smkn1sawit:~/ca# openssl req -config openssl.cnf -key private/ca.key.pem -new -x509 -days (DURASI SERTIFIKAT DALAM HARI) -sha256 -extensions v3_ca -out certs/ca.cert.pem
root@smkn1sawit:~/ca# chmod 444 certs/ca.cert.pem
# Verifikasi Hasil Pembuatan Sertifikat Root
root@smkn1sawit:~/ca# openssl x509 -noout -text -in certs/ca.cert.pem
5. Buat Konfigurasi OpenSSL untuk Intermediate CA
root@smkn1sawit:~/ca/intermediate# nano openssl.cnf
Isi Konfigurasi dapat dilihat disini
# Tambahkan File crlnumber di direktori Intermediate CA untuk mengikuti daftar Certificate Revocation Lists
root@smkn1sawit:~/ca/intermediate# echo 1000 > crlnumber
6. Buat Intermediate Key
Intermediate Key akan digunakan untuk membuat sertifikat Intermediate CA
root@smkn1sawit:~/ca# openssl genrsa -aes256 -out intermediate/private/intermediate.key.pem 4096
root@smkn1sawit:~/ca# chmod 400 intermediate/private/intermediate.key.pem
7. Buat Sertifikat CSR (Certificate Signing Request) untuk Intermediate CA
Disini Intermediate Key akan digunakan untuk men-generate atau membuat Sertifikat CSR untuk Intermediate CA.
Untuk catatan, Informasi Data dari CSR haruslah Sama dengan Root Certificate kecuali untuk CN atau Common Name
root@smkn1sawit:~/ca# openssl req -config intermediate/openssl.cnf -new -sha256 -key intermediate/private/intermediate.key.pem -out intermediate/csr/intermediate.csr.pem
8. Buat Sertifikat Intermediate
Setelah CSR untuk Intermediate dibuat, selanjutnya adalah digunakan bersama dengan Root CA untuk membuat Sertifikat Intermediate. Untuk catatan, Durasi dari Sertifikat Intermediate haruslah tidak lebih panjang dari Durasi dari Sertifikat Root.
root@smkn1sawit:~/ca# openssl ca -config openssl.cnf -extensions v3_intermediate_ca -days (DURASI SERTIFIKAT DALAM HARI) -notext -md sha256 -in intermediate/csr/intermediate.csr.pem -out intermediate/certs/intermediate.cert.pem
root@smkn1sawit:~/ca# chmod 444 intermediate/certs/intermediate.cert.pem
# Verifikasi Hasil dari Pembuatan Sertifikat Intermediate
root@smkn1sawit:~/ca# openssl x509 -noout -text -in intermediate/certs/intermediate.cert.pem
root@smkn1sawit:~/ca# openssl verify -CAfile certs/ca.cert.pem intermediate/certs/intermediate.cert.pem
# Bila hasil benar maka akan keluar: intermediate.cert.pem: OK
9. Buat Certificate Key untuk End User
root@smkn1sawit:~/ca# openssl genrsa -aes256 -out intermediate/private/smkn1sawit.net.key.pem 2048
root@smkn1sawit:~/ca# chmod 400 intermediate/private/smkn1sawit.net.key.pem
*teman-teman dapat mengganti nama alamat yang saya beri warna biru dengan alamat website teman-teman
10. Buat CSR (Certificate Signing Request) untuk End User
Untuk catatan:
*Informasi Data untuk CSR End User tidak harus atau tidak perlu sama dengan Sertifikat Intermediate atau Root.
*Untuk Sertifikat Server, Nama Domain dapat dimasukkan di Common Name (CN). Nama tidak boleh sama dengan Sertifikat Intermediate ataupun Root
*Domain dengan www dan tanpa www terhitung Single Domain. Jadi rencanakan dengan matang ketika mengisi Nama Domain di Common Name (CN) terutama untuk teman-teman yang hanya membuat SSL Non-Wildcard
Tips:
*Untuk membuat Wildcard SSL (SSL yang hanya mengamankan Subdomain), teman-teman dapat menambahkan tanda bintang didepan (*) pada saat memasukkan Nama Domain di Common Name. Contohnya: *.smkn1sawit.net
root@smkn1sawit:~/ca# openssl req -config intermediate/openssl.cnf -key intermediate/private/smkn1sawit.net.key.pem -new -sha256 -out intermediate/csr/smkn1sawit.net.csr.pem
11. Buat Sertifikat End User dengan Certificate Key dan CSR End User
root@smkn1sawit:~/ca# openssl ca -config intermediate/openssl.cnf -extensions server_cert -days (DURASI SERTIFIKAT DALAM HARI) -notext -md sha256 -in intermediate/csr/smkn1sawit.net.csr.pem -out intermediate/certs/smkn1sawit.net.cert.pem
root@smkn1sawit:~/ca# chmod 444 intermediate/certs/smkn1sawit.net.cert.pem
# Verifikasi Sertifikat End User
root@smkn1sawit:~/ca# openssl x509 -noout -text -in intermediate/certs/smkn1sawit.net.cert.pem
root@smkn1sawit:~/ca# openssl verify -CAfile intermediate/certs/ca-chain.cert.pem intermediate/certs/smkn1sawit.net.cert.pem
# Apabila tidak ada masalah dalam sertifikatnya maka akan keluar: smkn1sawit.net.cert.pem: OK
12. Buat File Certificate Chain
Certificate Chain berisi Sertifikat dari Root dan Intermediate. Certificate Chain biasa digunakan untuk Web Browser (Khususnya di Linux) untuk memverifikasi Sertifikat yang digunakan di Website kita
root@smkn1sawit:~/ca# cat intermediate/certs/intermediate.cert.pem certs/ca.cert.pem > intermediate/certs/ca-chain.cert.pem
root@smkn1sawit:~/ca# chmod 444 intermediate/certs/ca-chain.cert.pem
13. Siap Digunakan!
Itulah proses pembuatannya, untuk mulai menggunakan Sertifikat diatas di Web Server (Server-side) siapkan file-file berikut:
1. smkn1sawit.net.key.pem (SSL Private Key) (Lokasi: intermediate/private)
2. smkn1sawit.net.cert.pem (SSL Certificate) (Lokasi: intermediate/certs)
G.Referensi
Jamielinux (Sign Server and Client Certificate - OpenSSL Certificate Authority)
H.Kesimpulan
Kesimpulan saya kali ini kita bisa membuat Sertifikat sendiri asalkan kita teliti pada step-step yang ada dan kita dapat mengimplementasikannya pada apache2,HTTPS Hotspot MikroTik
F.Langkah Kerja
1. Buat Direktori untuk Sertifikat kita nantinya di /root/ca. Juga buat struktur direktorinya
root@smkn1sawit:~# mkdir ca && cd ca
root@smkn1sawit:~/ca# mkdir certs crl newcerts private
root@smkn1sawit:~/ca# chmod 700 private
root@smkn1sawit:~/ca# touch index.txt && echo 1000 > serial
root@smkn1sawit:~/ca# mkdir intermediate && cd intermediate
root@smkn1sawit:~/ca/intermediate# mkdir certs crl csr newcerts private && chmod 700 private
root@smkn1sawit:~/ca/intermediate# touch index.txt && echo 1000 > serial
2. Buat Konfigurasi OpenSSL yang akan kita gunakan untuk Root CA nantinya.
root@smkn1sawit:~/ca# nano openssl.cnf
Isi Konfigurasinya dapat dilihat disini
Penjelasan mengenai parameter konfigurasinya dapat dilihat disini
3. Buat Root Key.
Root Key akan digunakan untuk membuat Sertifikat Root (CA). Dan juga pastikan diamankan dengan Passphrase atau kata kunci yang aman dan Jangan sampai File ini hilang.
root@smkn1sawit:~/ca# openssl genrsa -aes256 -out private/ca.key.pem 4096
root@smkn1sawit:~/ca# chmod 400 private/ca.key.pem
4. Buat Sertifikat Root (CA)
Disinilah Root Key akan digunakan. Yaitu untuk membuat Sertifikat Root, mengapa keamanan file ini penting? karena siapapun yang memiliki akses Root Key maka dia dapat menerbitkan sertifikat sendiri. Juga pastikan untuk memilih durasi Sertifikat Root yang agak lama untuk kadaluarsa Seperti durasi diatas 15 Tahun. Karena jika Durasi Sertifikat Root Habis maka Sertifikat dibawahnya juga ikut kadaluarsa.
root@smkn1sawit:~/ca# openssl req -config openssl.cnf -key private/ca.key.pem -new -x509 -days (DURASI SERTIFIKAT DALAM HARI) -sha256 -extensions v3_ca -out certs/ca.cert.pem
root@smkn1sawit:~/ca# chmod 444 certs/ca.cert.pem
# Verifikasi Hasil Pembuatan Sertifikat Root
root@smkn1sawit:~/ca# openssl x509 -noout -text -in certs/ca.cert.pem
5. Buat Konfigurasi OpenSSL untuk Intermediate CA
root@smkn1sawit:~/ca/intermediate# nano openssl.cnf
Isi Konfigurasi dapat dilihat disini
# Tambahkan File crlnumber di direktori Intermediate CA untuk mengikuti daftar Certificate Revocation Lists
root@smkn1sawit:~/ca/intermediate# echo 1000 > crlnumber
6. Buat Intermediate Key
Intermediate Key akan digunakan untuk membuat sertifikat Intermediate CA
root@smkn1sawit:~/ca# openssl genrsa -aes256 -out intermediate/private/intermediate.key.pem 4096
root@smkn1sawit:~/ca# chmod 400 intermediate/private/intermediate.key.pem
7. Buat Sertifikat CSR (Certificate Signing Request) untuk Intermediate CA
Disini Intermediate Key akan digunakan untuk men-generate atau membuat Sertifikat CSR untuk Intermediate CA.
Untuk catatan, Informasi Data dari CSR haruslah Sama dengan Root Certificate kecuali untuk CN atau Common Name
root@smkn1sawit:~/ca# openssl req -config intermediate/openssl.cnf -new -sha256 -key intermediate/private/intermediate.key.pem -out intermediate/csr/intermediate.csr.pem
8. Buat Sertifikat Intermediate
Setelah CSR untuk Intermediate dibuat, selanjutnya adalah digunakan bersama dengan Root CA untuk membuat Sertifikat Intermediate. Untuk catatan, Durasi dari Sertifikat Intermediate haruslah tidak lebih panjang dari Durasi dari Sertifikat Root.
root@smkn1sawit:~/ca# openssl ca -config openssl.cnf -extensions v3_intermediate_ca -days (DURASI SERTIFIKAT DALAM HARI) -notext -md sha256 -in intermediate/csr/intermediate.csr.pem -out intermediate/certs/intermediate.cert.pem
root@smkn1sawit:~/ca# chmod 444 intermediate/certs/intermediate.cert.pem
# Verifikasi Hasil dari Pembuatan Sertifikat Intermediate
root@smkn1sawit:~/ca# openssl x509 -noout -text -in intermediate/certs/intermediate.cert.pem
root@smkn1sawit:~/ca# openssl verify -CAfile certs/ca.cert.pem intermediate/certs/intermediate.cert.pem
# Bila hasil benar maka akan keluar: intermediate.cert.pem: OK
9. Buat Certificate Key untuk End User
root@smkn1sawit:~/ca# openssl genrsa -aes256 -out intermediate/private/smkn1sawit.net.key.pem 2048
root@smkn1sawit:~/ca# chmod 400 intermediate/private/smkn1sawit.net.key.pem
*teman-teman dapat mengganti nama alamat yang saya beri warna biru dengan alamat website teman-teman
10. Buat CSR (Certificate Signing Request) untuk End User
Untuk catatan:
*Informasi Data untuk CSR End User tidak harus atau tidak perlu sama dengan Sertifikat Intermediate atau Root.
*Untuk Sertifikat Server, Nama Domain dapat dimasukkan di Common Name (CN). Nama tidak boleh sama dengan Sertifikat Intermediate ataupun Root
*Domain dengan www dan tanpa www terhitung Single Domain. Jadi rencanakan dengan matang ketika mengisi Nama Domain di Common Name (CN) terutama untuk teman-teman yang hanya membuat SSL Non-Wildcard
Tips:
*Untuk membuat Wildcard SSL (SSL yang hanya mengamankan Subdomain), teman-teman dapat menambahkan tanda bintang didepan (*) pada saat memasukkan Nama Domain di Common Name. Contohnya: *.smkn1sawit.net
root@smkn1sawit:~/ca# openssl req -config intermediate/openssl.cnf -key intermediate/private/smkn1sawit.net.key.pem -new -sha256 -out intermediate/csr/smkn1sawit.net.csr.pem
11. Buat Sertifikat End User dengan Certificate Key dan CSR End User
root@smkn1sawit:~/ca# openssl ca -config intermediate/openssl.cnf -extensions server_cert -days (DURASI SERTIFIKAT DALAM HARI) -notext -md sha256 -in intermediate/csr/smkn1sawit.net.csr.pem -out intermediate/certs/smkn1sawit.net.cert.pem
root@smkn1sawit:~/ca# chmod 444 intermediate/certs/smkn1sawit.net.cert.pem
# Verifikasi Sertifikat End User
root@smkn1sawit:~/ca# openssl x509 -noout -text -in intermediate/certs/smkn1sawit.net.cert.pem
root@smkn1sawit:~/ca# openssl verify -CAfile intermediate/certs/ca-chain.cert.pem intermediate/certs/smkn1sawit.net.cert.pem
# Apabila tidak ada masalah dalam sertifikatnya maka akan keluar: smkn1sawit.net.cert.pem: OK
12. Buat File Certificate Chain
Certificate Chain berisi Sertifikat dari Root dan Intermediate. Certificate Chain biasa digunakan untuk Web Browser (Khususnya di Linux) untuk memverifikasi Sertifikat yang digunakan di Website kita
root@smkn1sawit:~/ca# cat intermediate/certs/intermediate.cert.pem certs/ca.cert.pem > intermediate/certs/ca-chain.cert.pem
root@smkn1sawit:~/ca# chmod 444 intermediate/certs/ca-chain.cert.pem
13. Siap Digunakan!
Itulah proses pembuatannya, untuk mulai menggunakan Sertifikat diatas di Web Server (Server-side) siapkan file-file berikut:
1. smkn1sawit.net.key.pem (SSL Private Key) (Lokasi: intermediate/private)
2. smkn1sawit.net.cert.pem (SSL Certificate) (Lokasi: intermediate/certs)
G.Referensi
Jamielinux (Sign Server and Client Certificate - OpenSSL Certificate Authority)
H.Kesimpulan
Kesimpulan saya kali ini kita bisa membuat Sertifikat sendiri asalkan kita teliti pada step-step yang ada dan kita dapat mengimplementasikannya pada apache2,HTTPS Hotspot MikroTik
Sekian dari saya,jika ada salah ketik maupun hal lain yang tidak berkenan mohon maaf sebesar-besarnya
Terima Kasih
Wassalamualikum Wr.Wb
Terima Kasih
Wassalamualikum Wr.Wb

No comments:
Post a Comment