Konfigurasi Debian sebagai Certificate Authority dan Web HTTPS
Saturday, March 21, 2020PENDAHULUAN
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.
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
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
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.
0 comments