1.
Mengenalkan
tentang konsep SSL
2.
Membuat
self-signed server certificate
3.
Melakukan
instalasi dan konfigurasi Apache2 + SSL/TLS
4.
Melakukan
testing instalasi
B. DASAR
TEORI
1. SSL
/ TLS
Transport
Layer Security (TLS) adalah protocol untuk mengamankan komunikasi antar
aplikasi lewat internet. TLS mengamankan konten pada layer aplikasi, seperti
halaman web dan diimplementasikan pada layer transport, yaitu TCP. Untuk
menjamin keamanan. data yang dikirim dienkripsi dan diotentikasi pada sisi
server dan client. Secure Socket Layer (SSL) adalah protocol yang diciptakan
sebelum TLS yang mengaplikasikan hal ini.
SSL/TLS
biasanya dioperasikan secara bersama-sama dengan HTTP, sehingga membentuk
protocol baru yang disebut HTTPS, untuk mengamankan transaksi lewat web. Selain
intu, protocol ini dapat digunakan untuk aplikasi-aplikasi lain seperti email,
file transfer dan virtual private networks (VPN).
2. HTTPS
HTTPS
menggabungkan protocol HTTP dan SSL/TLS untuk menjamin keamanan komunikasi
antara eb server dan web browser. HTTPS beroperasi pada port 443 dan bukan pada
port 80 seperti normalnya HTTP. HTTPS bekerja dengan menyediakan enkripsi untuk
konten web dan otentikasi web server. HTTPS tidak melakukan otentikasi client
sehingga web sita tidak dapat melakukan otentikasi user selama koneksi. User
harus melakukan sejumlah otentikasi tambahan seperti password,biometric atau metode
otentikasi lain.
Komunikasi
SSL/TLS meliputi dua tahap yaitu handshaking dan data sending. Sebelum
berkomunikasi, web site harus meminta certificate authority (CA) agar dapat
menanda tangani (signing) digital certificate-nya yang berisi public key dari
site. User yang menerima digital sertificate CA, segera memanggil sertifikat
root, yang dimiliki ketika mereka menginstall web browser. Web browser seperti
Internet Explorer atau Firefox sebelumnya telah dilengkapi dengan sejumlah
sertifikat root dari bermacam-macam perusahaan seperti VeriSign atau Entrust,
yang memang menspesialiasisikan diri sebagai perusahaan yang bergerak di bidang
sertifikasi.
Pada
gambar diatas, begitu user hendak mengkoneksikan diri dengan website lewat
koneksi https, web server mengirim certifikatnya yang mengandung public key
dari web site tersebut. User akan memverifikasi sertifikat ini dengan memakai
pre-installed sertifikat root dari website CA.
PAda
tahap kedua dari komunikasi SSL/TLS adalah tahapan enkripsi antara server dan
client berdasarkan protocol kriptografi yang dinegosiasikan antara kedua belah
pihak. Pada gambar berikut, begitu sertifikat digital server berhasil
diverifikasi, maka browser dan server mulai saling bernegosiasi cipher yang
hendak dipakai untuk pengkodean data dan verifikasi digital signature. Jika
public key enkripsi sudah dipilih, kedua belah pihak mengenkripsikan data
dengan public key masing-masing dan mendekripsi dengan private keynya. Untuk
menghemat waktu, enkripsi public key hanya digunakan saat saling menukar
session key (private key yang temporer) yang dipakai untuk data enkripsi.
Software
yang dibutuhkan untuk menginstall web server yang secure dan berbasis
open-source adalah :
1.
Apache
2.2.11: Apache2 ini adalah web server yang akan kita gunakan. Anda dapat
mengecek informasinya lewat http://httpd.apache.org/.
2.
OpenSSL
0.9.8k: OpenSSL adalah toolkit yang digunakan untuk mengimplementasikan
protocol Secure Socket Layer (SSL v2/v3) dan Transport Layer Security (TLS v1).
OpenSSL juga menyediakan general purpose library untuk kriptografi. Anda dapat
mengecek informasinya lewat http://www.openssl.org/.
3.
Mod_SSL
2.2.11: Mod_SSL adalah add-on modul untuk Apache. Pada versi lama apache, user
harus mengkompile paket ini, sedangkan pada versi baru, Mod_SSL sudah built-in
pada server sebagai interface antara OpenSSL dan Apache2. Anda dapat mengecek
informasinya lewat http://www.mod_ssl.org.
C. LANGKAH
PERCOBAAN
·
Menciptakan sertifikat
SSL dengan OpenSSL
1.
Menginstall
software yang dibutukan, dalam hal ini ada 2 software yaitu apache dan openssl
Apache
digunakan sebagai web server
Openssl
digunakan untuk pembuatan sertifikat ssl
2.
Langkah
berikutnya adalah membuat sertifikat SSL untuk web server sebelum kita
menjalankan secure server dengan HTTPS. Selain itu , kita juga akan membuat
pasangan public/private key untuk melakukan request sertifikat. Anda akan
membutuhkan domain name untuk sertifikat yang anda ciptakan. Pada contoh ini
digunakan nama : www.webku.com
3.
Masuk
ke direktori /etc/apache2/ssl. Direktori ssl adalah direktori dimana anda
menyimpan semua private keys, certificate signing request dan sertifikat.
4.
Membuat
sepasang public/private key. Pertama-tama kosongkan semua sertifikat yang ada
dengan perintah rm * pada direktori /etc/apache2/ssl
5.
Kemudian
buat key dengan nama server.key yang merupakan private key dengan perintah
#openssl genrsa –des3 –ou server.key 1024. Key yang dibuat ini misalkan diberi
nama server.key. Siapkan passphrase dan isikan data pada saat diminta.
Passphrase ini digunkan untuk validasi untuk membuat file selanjutnya seperti
csr dan crt
6.
Generate
file server.csr menggunakan private key di atas dengan perintah openssl req
–new -key server.key –out server.csr
file csr ini misalkan diberi nama server.csr.
Untuk
membuat file csr ini dibutuhkan validasi terlebih dahulu dengan menginputkan
password passphrase server.key
7.
Generate
file server.crt
Perintah
diatas akan meminta anda memasukkan kembali passphrase untuk mengenerate
server.key (yaitu 123456). Masukkan passphrase yang sesuai.
8.
Cek
lagi directory ssl dan anda seharusnya memiliki 3 file, server.key,server.crt
dan server.crs. Jika benar, selamat, anda telah menyelesaikan lab ini dengan
baik
1.
Cek
direktori ssl untuk memastikan ada 3
file yaitu server.key, server.crt dan server.crs
2.
Enable
kan modul mod_ssl dengan perintah a2enmod ssl
3.
Restart
apache
4.
Copy
file default yang ada di /etc/apache2/sites-available, beri nama file tersebut
dengan nama www.webku.com.conf
5.
Edit
file www.webku.com.conf dengan perintah #gedit
etc/apache2/sites-available/www.webku.com
-
Ubah
port VirtualHost dari 80 ke 443
-
Tambahkan
server name dibawah server admin sebagai berikut
ServerName
www.webku.com:443
-
Ubah
DocumentRoot untuk menunjuk ke web direktori dari website webku.
DocumentRoot
/var/www/webku
-
Ubah
<Directory/var/www> untuk menuju ke direktori webku.
<Directory
/var/www/webku>
-
Masukkan
baris ini sebelum baris ErrorLog /var/log/apache2/error.log. tujuannya adalah
agar virtual host tahu dimana key dan sertifikat SSL disimpan
SSLEngine
On
SSLCertificateFile
/etc/apache2/ssl/server.crt
SSLCertificateKeyFile
/etc/apache2/ssl/server.key
6.
Simpan
file www.webku.com.conf melalui editor gedit / nano dsb. Kemudian pada
direktori /var/www/ copy file index.html ke /var/www/webku/
8.
Edit
file /etc/host untuk melakukan resolusi domain www.webku.com website ke
127.0.0.1. cari baris 127.0.0.1 lalu tambahkan baris ini : 127.0.0.1 localhost
webku www.webku.com
·
Menjalankan HTTPS
1.
Restart
apache2 agar efek dari sertifikat SSL mulai efektif. Karena mode ssl sudah
diaktifkan maka untuk melakukan restart apache dibutuhkan validasi dengan
menggunakan passphrase file server.key
2.
Buka
http://localhost pada browser untuk melakukan pengecekan terhadap localhost
3.
Buka
URL berikut https://www.webku.com dan kemduian get certificate untuk
mendapatkan akses ssl ke www.webku.com. Klik tombol : I Understand the Risks,
kemudian klik tombol: Add Exception dan terakhir klik Get Certificate . Klik
View. Anda akan melihat sertifikat self-signed yang tadi anda buat. Setelah itu
klik checkbox Permanently store this exception dan klik tombol Confirm Security
Exception
Setelah
mendapatkan certificate, maka www.webku.com dapat diakses. Terlihat pada gambar
No comments:
Post a Comment