Konfigurasi Keamanan Layanan Web SSL TSL

Keamanan Jaringan

“Laporan Resmi - Web SSL”

Oleh :
Ulinnuha Nabilah
2103141046 / 3 D3 IT-B

Dosen Pengampu :
Ferry Astika Saputra
Laboratorium Jaringan D4 - PENS

POLITEKNIK ELEKTRONIKA NEGERI
SURABAYA

Pertemuan 12: Konfigurasi Keamanan Layanan Web (SSL/TLS)

A. TUJUAN PEMBELAJARAN
1.
2.
3.

4.

Mengenalkan tentang konsep SSL
Membuat self-signed server certificate
Melakukan instalasi dan konfigurasi Apache2 + SSL/TLS
Melakukan testing instalasi

B. DASAR TEORI
1.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

2

Pertemuan 12: Konfigurasi Keamanan Layanan Web (SSL/TLS)

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
bermacammacam perusahaan seperti VeriSign atau Entrust, yang memang
menspesialiasisikan diri sebagai perusahaan yang bergerak di bidang sertifikasi.

CA: Verisign

2

1
3

5

Client web browser

Amazon server
4

1.
2.
3.
4.
5.


Verisign menandatangani sertifikat Amazon dengan publik key-nya
Install CA sertikat dengan public key-nya pada browser client
Koneksi lewat https
Saling menukar sertifikat digital, termasuk publik key
Client melakukan verifikasi sertifikat Amazon menggunakan public key dari CA
Gambar 12.1 SSL/TLS handshaking pada https

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 preinstalled 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.
1


4

Client

2

Amazon server

3
1. Menegosiasikan cipher (metode kriptografi yang dipakai, termasuk didalamnya panjang
key, hash function, otentikasi ,dll)

3

Pertemuan 12: Konfigurasi Keamanan Layanan Web (SSL/TLS)

2. Mengirim data yang telah terinkripsi dengan Amazon publik key
3. Mengirim data yang telah terinkripsi dengan client publik key
4. Dekripsi/decoding data dari Amazon dengan publik key client

Gambar 12.2 Data sending dengan SSL/TLS

Gambar 12.3 Indikator penggunaan SSL/TLS

Software yang dibutuhkan untuk menginstall web server yang secure dan berbasis opensource
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.

4

Pertemuan 12: Konfigurasi Keamanan Layanan Web (SSL/TLS)


D. PERCOBAAN
1.

Manajemen sertifikat dengan web browser
Pada bagian ini browser menyimpan informasi certificate authority (CA) dan informasiinformasi berkaitan dengan cipher-nya. 1. Untuk melihat sertifikat terserbut, buka
browser firefox. Pada toolbar, masuk ke tab Preferences -> Advanced -- -> Encryption
2. Melihat protokol yang digunakan untuk enkripsi.

Gambar 12.4 Protokol enkripsi

3.

Klik Certificates -> Authorities. Akan ada Certificate Authorities (CA) yang diinstall
di browser, Ini adalah kumpulan listing perusahaan (CA) yang menawarkan jasa untuk
penandatanganan (signing) dan verifikasi sertifikat (mereka adalah pihak ketiga yang
dipercaya).

Gambar 12.5 Listing Certificate Authorities (CA) di Firefox dan sertifikatnya


5

Pertemuan 12: Konfigurasi Keamanan Layanan Web (SSL/TLS)

4.

Selain melisting nama-nama CA, juga dicantumkan sertifikat dari masing-masing
perusahaan.
a. Tekan Built in object token untuk melihat root certficate. Pilih salah satu sertifikat
ini dengan menklik View -> General. General memberikan informasi tentang
perusahan CA tersebut seperti Common Name, Organization, Organization Unit,
validitas, kode fingerprintnya dan lain-lain.
b. Klik Detail untuk melihat informasi seputar enkripsinya.
c. Klik certificate fileds, kemudian cari Certificate Signature Algorithm. Fiels ini
menunjukan algoritma apa yang dipakai CA untuk menandatangani sertifikat.
Hasilnya akan terlihat di fields value.

Gambar 12.6 Detail enkripsi yang dipakai oleh CA

6


Pertemuan 12: Konfigurasi Keamanan Layanan Web (SSL/TLS)

Gambar 12.7 Field certicate untuk mengecek algoritma yang dipakai CA

5.

Pilih field Subject’s Public Key. Ini adalah pulic key dari CA.

6.

Klik Close untuk meninggalkan certificate viewer , klik OK dan kembalilah pada
jendela Preference.

7

Pertemuan 12: Konfigurasi Keamanan Layanan Web (SSL/TLS)

2. Menciptakan sertifikat SSL dengan OpenSSL
Pada bagian ini anda akan belajar bagaimana menginstall web server yang secure

dengan menggunakan SSL/TLS untuk transaksinya. Mengenai software yang
dibutuhkan, anda bisa membaca pada dasar teori. Sebagai langkah awal installah
software-software tersebut. Untuk mod_ssl, secara otomatis telah ter-built-in pada
Apache2.
Tahap paling penting dari praktikum ini adalah membuat public/private key, SSL
sertifikat, certificate signing request (CSR). Biasanya, server yang komersial, akan
meminta otoritas pihak ke tiga seperti VeriSign untuk menandatangani sertifikatnya.
Pada praktikum ini, kita tidak akan meminta bantuan pihak ketiga, namun menjadi CA
sendiri (self signing CA). Kita juga akan membuat domain sendiri yang dihost secara
local. Karena itu anda bisa memilih nama domain yang anda inginkan. Kerjakan
langkah-langkah dibawah dan jawab pertanyaanpertanyaannnya.
1. Menginstall software-software yang dibutuhkan :
$ sudo apt-get install apache2

$ sudo apt-get install

openssl

8


Pertemuan 12: Konfigurasi Keamanan Layanan Web (SSL/TLS)

2. membuat sertifikat SSL untuk web server sebelum kita menjalankan secure server
dengan HTTPS. Selain itu , membuat pasangan public/private key untuk melakukan
request sertifikat. Pada tahap ini 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 tersimpan
semua private keys, certificate signing request dan sertifikat. Lihat isi direktori ini
$ cd /etc/apache2/ssl.
$ ls -al

4. Untuk membuat Certificate Signing Request (CSR), sebelumnya harus membuat
sepasang public/privat key terlebih dahulu. Untuk itu, pertama-tama, kosongkan semua
sertifikat yang ada dengan perintah :
$ sudo rm *

5. Kemudian membuat key dengan nama server.key yang merupakan private key dengan
perintah :
$ sudo openssl genrsa -des3 -out server.key 1024

genrsa : menunjukkan OpenSSL bahwa anda ingin menciptakan sepasang key des3 :
menunjukkan bahwa private key harus dienkripsi dan dilindungi oleh passphrase
out : menunjukkan filename yang akan menyimpan hasil output
1024 : menunjukkan jumlah bit dari key yang dibuat

9

Pertemuan 12: Konfigurasi Keamanan Layanan Web (SSL/TLS)

6. Siapkan passphrase dan isikan pada saat diminta.
Setelah menjalankan langkah ini. akan tercipta server.key pada direktori ssl. Cek dengan
perintah ls –al.

7. Generate file server.csr dengan menggunakan private key diatas. Gunakan perintah
dibawah.
$ sudo openssl req -new -key server.key -out server.csr

Akan muncul tampilan berikut. Isi sesuai dengan keinginan anda. Yang penting ketika
memasukkan Common Name (CN) adalah CN harus sesuai dengan alamat web, nama
DNS atau IP address pada konfigurasi Apache. Setelah anda memasukkan informasi
tersebut, akan terbentuk file server.csr yang akan digunakan untuk meminta sertifikat.
Coba cek dengan perintah ls untuk meihat apakah file ini sudah terbentuk.
Country Name:INA
State or Province Name: jatim
Locality Name: SBY
Organization Name: EEPIS

10

Pertemuan 12: Konfigurasi Keamanan Layanan Web (SSL/TLS)

Organizational Unit Name: IT
Common Name: www.webku.com
Email: fitri@eepis-its.edu
A challenge password: 1234567
An Optional Company Name: G10
Gambar 12.9 Field Informasi CA

8.

9.

Perhatikan bahwa untuk membuat file server.crt anda membutuhkan server.key dan
server.csr. Biasanya, pada langkah ini, web server komersial akan meminta CA
professional seperti VeriSign untuk memberikan file crt. Pada praktikum ini kita akan
berlaku sebagai CA dan mengenerate file crt tersebut secara mandiri (self signing
certificate).
Sekarang coba generate file server.crt dengan perintah dibawah :
$ sudo openssl x509 -req -days 365 -in server.csr -signkey server.key
-out server.crt

Perintah diatas akan diminta untuk memasukkan kembali passphrase untuk mengenerate
server.key (yaitu 123456). Masukkan passphrase yang sesuai.

11

Pertemuan 12: Konfigurasi Keamanan Layanan Web (SSL/TLS)

10. 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

3. Konfigurasi Apache untuk site www.webku.com
1. Cek direktori ssl untuk memastikan ada 3 file disini yaitu : server.key,server.crt dan
server.crs. Hal ini penting untuk kelancaran percobaan ke 3 ini.
2. Enable-kan modul mod_ssl dengan perintah :
$ sudo a2enmod ssl

3. Restart apache. Tujuannya agar module ssl berjalan pada apache. Proses ini harusnya
berjalan tanpa error.
$ sudo /etc/init.d/apache2 restart

4. Copy file default ke file ke file www.webku.com
$ cd /etc/apache2/sites-available/
$ cp default www.webku.com

5. Edit file www.webku.com dengan gedit atau pico
$ sudo gedit etc/apache2/sites-available/www.webku.com

Ubah port VirtualHost dari 80 ke 443. Baris pertama dari file namapk seperti dibawah.


Tambahkan server name dibawah baris ServerAdmin
ServerName www.webku.com:443

Ubah DocumentRoot untuk menunjuk ke web direktori dari website webku.
DocumentRoot /var/www/webku

Ubah untuk menunjuk ke direktori webku


Masukkan baris ini sebelum baris ErrorLog /var/log/apache2/error.log. Tujuannya agar
virtual host tahu dimana key dan sertifikat SSL disimpan.
SSLEngine On

12

Pertemuan 12: Konfigurasi Keamanan Layanan Web (SSL/TLS)

SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key

6. Simpan file www.webku.com
7. Pada directory /var/www/, copy file index.html ke /var/www/webku/
$ sudo cp /var/www/index.html /var/www/webku/index.html

8. Enable-kan website www.webku.com dengan :
$ sudo a2ensite www.webku.com
9. Edit file /etc/hosts 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

4. Menjalankan https
1. Restart apache2 agar efek dari sertifikat SSL mulai efektif.
$ sudo /etc/init.d/apache2 restart
Masukkan passphrase yaitu 123456. Jika cocok maka apache2 akan di-restart dan
memberikan tanda [OK]
2. Membuka http://localhost pada browser. Jika apache2 berjalan dengan baik, maka akan
muncul pesan “It Works!”

3. Buka URL berikut https://www.webku.com. Akan muncul :

Gambar 12.10 Tampilan browser waktu pertama kali mengakses https
Pesan ini muncul dari browser karena sertifikat yang dibangkitkan oleh
www.webku.com bersifat self signed. Untuk menangani hal tersebut :
13

Pertemuan 12: Konfigurasi Keamanan Layanan Web (SSL/TLS)

a. Klik tombol : I Understand the Risks
b. klik tombol: Add Exception dan terakhir klik Get Certificate .
c. 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.

4. Akhirnya muncul halaman web yang kita buat.

14