Konfigurasi Debian sebagai Certificate Authority dan Web HTTPS

Saturday, March 21, 2020

PENDAHULUAN

Halo semuanya!!! Salam sobat networkers, bertemu lagi dengan saya di blog ini tentunya. Kali ni kita akan belajar mengenai Certificate Authority(CA), nanti akan kita bahas mengenai cara menjadikan Linux Debian sebagai CA dan juga nanti saya akan contohkan penerapannya untuk WEB Server HTTPS. Ada Baiknya sobat sudah paham konfigurasi tentang DNS Server Oke sebelum masuk ke konfigurasinya saya akan bahas sedikit tentang Pengertian dari CA dan Web Server HTTPS ini.
Pengertian Certificate Authority (CA)
Certificate Authority (CA) adalah perusahaan yang bertugas membarikan sertifikat pada ssl/tsl. 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.
 
Bukti identitas yang dimiliki oleh sebuah website disebut private key. Private key merupakan sebuah file yang menjadi bukti identitas suatu server. Lembaga yang berhak mengeluarkan private key yang falid disebut certificate authority. Untuk mendapatkan private key yang falid kita harus membeli sertifikat dari salah satu certificate authority terpercaya yang ada didunia. Terdapat banyak sekali certificate authority terpercaya yang berhak mengeluarkan private key yang falid didunia ini, seperti comodo, versign, cybertrust/verizon, startssl, dll.
Terpercaya atau tidaknya suatu certificate authority bisa kita lihat di web browser kita masing-masing. Jika suatu certificate authority terdapat pada web browser, berarti certificte authority tersebut terpercaya, begitu juga sebaliknya.
Perbededaan mendasar dari certificate authority terpercaya dan yang tidak terpercaya terletak pada private key yang dihasilkan. Jika certificate authority terpercaya, maka private key yang dihasilkan akan falid dan sertifikat ssl juga akan terpercaya. Berikut contoh penggunaan sertifikat ssl yang terpercaya.
Sedangkan jika ssl yang tidak terpercaya, maka hasilnya akan sperti ini.
Pengertian WEB Server HTTPS
Sama halnya dengan Web Server HTTP, HTTPS juga bertugas menampilkan sebuah halaman web pada browser
Perbedaan utama antara http dan https terletak pada tingkat keamanan yang dimiliki, dimana https adalah versi secure (lebih aman) dari http. Selain keamanan, perbedaan lain terletak ada port yang digunakan. Protocol http menggunakan port 80, sedangkan https menggunakan port 443.
Skenario Jaringan
Pada skenario jaringan kita kali ini saya menggunakan Topologi jaringan seperti berikut.
Nantinya Web Server akan mengajukan permohonan kepada CA untuk menyetujui sertifikat miliknya. Setelah sertifikat disetujui nanti sertifikat ini akan kita gunakan untuk konfigurasi HTTPS. Kemudian client akan medaftarkan CA yang kita buat menjadi salah satu certificate authority terpercaya di browsernya.
Kita kali ini akan praktik seolah-olah menjadi tiga pihatk yang berbeda, yaitu sebagai CA, sebagai pemilik Web Server, dan juga sebagai client.
MENGAJUKAN PERMOHONAN KE CA
**note: Konfigurasi kali ini dilakukan pada Web Server.
Ada dua file yang perlu disiapkan untuk mengajukan permohonan persetujuan sertifikat kepada CA, yaitu private key dan dokumen persetujuan sertifikat yang disebut Certificate Signing Request (CSR). Saya akan membuat direktori khusus untuk menyimpan sertifikat yang dibutuhkan pada direktori /etc/apache2/ssl
Pertama-tama kita harus membuat Private key sebagai berikut.
Perintah diatas digunakan untuk membuat private key dengan nama setyasite.key. Setelah private key sudah dibuat maka selanjutnya kita harus membuat file sertifikat CSR dengan memanfaatkan private key yang sudah dibuat. File CSR nanti akan kita berikan kepada CA. Untuk membuat file CSR berikut perintah yang bisa digunakan.
Berikut keterangan dari masing-masing langkah yang dilakukan diatas.
Mula-mula kita diperintahkan untuk memamasukkan pasword dari private key yang sudah kita buat tadi.
Country Name : kode negara dimana kita tinggal
State or Province name : Provinsi tempat kita tinggal
Locality Name : Kota/Kabupaten tempat kita tingal
Organization Name : Nama organisai atau perusahaan kita.
Organizational Unit Name : Divisi tempat kita bekerja.
Common Name : Domain dari organisasi/perusaahan kita.
Email Address : Email Administrator.
A challenge password : Extra password, bagian ini optional.
An optional company name : bagian ini juga optional.
Kita telah membuat dua file yang diperlukan, yaitu private key dan CSR.  Langkah selanjutnya adalah mengerimkan CSR kepada CA. Untuk mengirimkan CSR Kepada CA, kita bisa menggunakan media transfer file yang kita inginkan seperti ftp, sftp, ataupun yang lain. Setelah itu, sebagai pemilik server kita tinggal menunggu CSR disetujui oleh CA. Langkah selanjutnya kita akan seolah-olah menjadi Certificate Authority (CA).
MEMBUAT CERTIFICATE AUTHORITY
**note: Konfigurasi kali ini dilakukan pada CA.
Telah dijelaskan sebelumnya, bahwa certificate authority (CA) adalah suatu lembaga yang bertugas memberikan sertifikat ssl kepada suatu server. Pada sub bab ini kita akan membuat sebuah certificate authority untuk digunakan pada jaringan lokal.
Untuk membuat CA kita harus membuat direktori khusus untuk menyimpan file-file yang dibutuhkan. Berikut adalah direktori yang saya buat.
Setelah membuat direktori masuk ke /ca/ca_dir/ lalu buat private key untuk CA. Membuat private key untuk CA sebagai berikut.
Jika private key sudah ada, sekarang kita lanjutkan membuat file CRT untuk CA dengan memanfaatkan Private key yang sudah dibuat tadi. Sertifikat ini (CRT) nantinya digunakan agar CA bisa menyetujui CSR yang diajukan oleh Web Server. Untuk membuat file CRT bisa gunakan command seperti berikut ini.
Berikut keterangan dari masing-masing langkah yang dilakukan diatas.
Mula-mula kita diperintahkan untuk memamasukkan pasword dari private key yang sudah kita buat tadi.
Country Name : kode negara dimana kita tinggal
State or Province Name : Provinsi tempat kita tinggal
Locality Name : Kota/Kabupaten tempat kita tingal
Organization Name : Nama organisai atau perusahaan kita.
Organizational Unit Name : Divisi tempat kita bekerja.
Common Name : Domain dari organisasi/perusaahan kita.
Email Address : Email Administrator.
Selanjutnya kita akan membuat file konfiguarasi untuk digunakan CA. File konfigurasi yang akan buat saya beri nama config_ca yang saya letekkan pada /ca/config_ca. Isi dari file konfigurasi tadi adalah seperti berikut.
Langkah selanjutnya kita buat file dan direktori tambahan yang diperlukan oleh CA. File dan konfigurasi ini saya letakkan pada direktori /ca/ca_dir/. File dan direktori yang diperlukan adalah sebagai berikut.
Telah dijelaskan sebelumnya bahwa sebagai Web Server yang terakhir kita kerjakan adalah mengirimkan sertifikat CSR kepada CA, umunya pengiriman ini dilakukan menggunakan Email, namun karna kali ini hanya untuk keperluan belajar kita bisa menggunakan File Transfer biasa seperti SFTP ataupun FTP. Saya asumsikan bahwa File CSR milik Web Server sudah dikirimkan ke CA.
PENYUTUJUAN CSR OLEH CA
**note: Konfigurasi kali ini dilakukan pada CA.
Pada konfigurasi kali ini kita akan seolah-olah menjadi Certificate Authority dan menyutujui sertifikat CSR yang diajukan oleh Web Server, tapi sebelumnya pastikan sertifikate CSR sudah dikirim ke CA dan ada pada direktori /ca/ca_dir/sertifikat-request.
Untuk menyetujui sertifikat CSR navigasikan letak path ke direktori /ca. Command yang digunakan adalah seperti berikut.
Setelah perintah diatas dijalankan maka akan ada file baru secara otomatis bernama 00.pem pada direktori /ca/ca_dir/sertifikat-customer.
Selanjutnya adalah kita mengirimkan file baru tersebut (00.pem) kepada Web Server yang mengajukan CSR. Namun ada baiknya kita sebagai CA merubah nama file tersebut (00.pem) menjadi nama domain dari Web Server tersebut, dari 00.pem kita ubah menjadi setyasite.crt.
Setelah diRename kita harus segera mengirimkan file setyasite.crt tersebut ke Web Server. Kita bisa menggunakan media transfer seperti email dan sebagainya, namun karna kali ini hanya untuk pembelajaran kita bisa saja menggunakan file transfer biasa seperti sftp ataupun ftp.
KONFIGURASI HTTPS PADA WEB SERVER
**note: Konfigurasi kali ini dilakukan pada Web Server.
Sekarang kita akan mengkonfigurasi Web Server HTTPS dengan memanfaatkan private key dan juga file CRT yang sudah kita buat. Saya asumsikan bahwa file setyasite.crt sudah dikirimkan ke Web Server. Pastikan bahwa file setyasite.crt tersebut sudahada pada direktori /etc/apache2/ssl/. Jadi sekarang kita punya 3 file yaitu private key, CSR, dan juga file CRT. Namun yang dibutuhkan untuk konfigurasi HTTPS hanya dua buah file saja yakni private key dan crt. Setelah file private key dan juga file crt sudah ada. Sekarang kita aktifkan modul ssl dengan perintah seperti berikut ini.
Sebelum kita masuk ke langkah selanjutnya, kita siapkan dahulu web direktori yang paling tidak berisikan satu buah file html dengan format nama file index.html. Berikut adalah web direktori yang saya gunakan.
Sekarang kita konfigurasi HTTPS nya dengan mengedit file /etc/apache2/site-available/default-ssl.conf
Penjelasan dari konfigurasi diatas :
VirtualHost : IP Address dari Web Server
ServerAdmin : Alamat Email administrator
ServerName : Alamat domain untuk Web Server
DocumentRoot : Berikan informasi letak path dari Web Direktori
SSLCertificateFile : Berikan informasi letak path dari file crt
SSLCertificateKeyFile : Berikan informasi letak path dari private key
Sekarang aktifkan file konfigurasi tadi dilanjutkan dengan restart service apche2 nya. gunakan perintah seperti berikut.
Untuk merestart apache2 yang sudah dikonfigurasikan HTTPS sedikit berbeda dengan http biasa, kita harus memasukkan password dari private key yang kita punya. Langkah selanjutnya kita akan melakukan pengujian pada client.
PENGUJIAN PADA CLIENT
Untuk melakukan pengujian kita harus mengimport file crt milik CA ke web browser milik client untuk membuat agar CA yang kita buat tadi terpercaya. Diasumsikan bahwa kita telah download file sertifikat crt milik komputer CA (ca.crt) ke komputer client. Dan disini saya menggunakan web browser FireFox untuk pengujiannya. Jika sobat menggunakan web browser lain sobat bisa menyesuaikan saja. Berikut langkah-langkah mengimport file crt ke web browser FireFox.
Buka web browser FireFox lalu buka setting, masuk ke Privacy & Security, lalu klik View Certificates.
Pada Authorities klik Import.
Pilih file crt milik CA (ca.crt), klik Open lalu Klik OK
Centang pada kedua opsi lalu klik OK
Setelah itu cari dan pastikan bahwa CA kita telah terdaftar sebagai CA terpercaya pada Web Browser FireFox.
Sekarang kita bisa akses Website kita yang telah kita konfigurasikan HTTPS dengan url https://www.setyasite.com maka bisa dilihat bahwa ada icon Gembok di samping url tadi ini berarti konfigurasi kita sudah berhasil.
PENUTUP Oke lah sobat segitu dulu pembelajaran kita kali ini, semoga bisa bermanfaat dan mudah dimengerti. Postingan saya tersebut jauh dari kata 'SEMPURNA' jIka ada kesalahan pada postingan saya kali ini saya mohon maaf karna saya juga masih dalam tahap belajar. Jangan lupa berbagi ilmu yang kita bisa kepada orang lain agar kita bisa manjadi manusia yang bermanfaat. Salam sobat networkers.

You Might Also Like

0 comments