Securing Web Server (HTTPS)


HTTP adalah protokol yang digunakan oleh web server. Semua data yang dikirim menggunakan protokol tersebut tidak terenkripsi (PLAIN Text biasa). Oleh karena itu, perlu kita tambahkan protokol tambahan yang bernama SSL atau TLS. Protokol tersebut berfungsi menambal protokol HTTP, agar menjadi secure (HTTPS). OpenSSL merupakan kepangjangan dari Secure Socket Layer. Securing Web Server

1.       Installasi
Terlebih dahulu, pastikan bahwa aplikasi apache2 untuk web server sudah terinstall, jika belum ada, maka install dahulu.
debian-server:~# apt-get install apache2 openssl ssl-cert

2.     Konfigurasi
Setelah server diinstall, kita akan melakukan tiga langkah konfigrasi SSL sbb;
a) Generate, or import, a certificate.
b) Enable Apaches SSL support.
c) Configure your SSL options.

Generating A Certificate
Pada bagian ini, kita akan membuat RSA key dan SSL Certificate yang berfungsi sebagai kartu identitas bagi server Debian tersebut. 
Securing Web Server
debian-server:~# openssl req -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout
/etc/apahce2/apache.pem
Country Name (2 letter code) [GB]: ID
State or Province Name (full name) [Some-State]: East Java
Locality Name (eg, city) []: Mojokerto
Organization Name (eg, company; recommended) []: Al-Mansyurin Team
Organizational Unit Name (eg, section) []:
server name (eg. ssl.domain.tld; required!!!) []: debian.edu
Email Address []: admin@debian.edu
Enabling SSL Support

Aktifkan mod ssl pada aplikasi Apahce2, agar fitur ssl dapat kita gunakan.
debian-server:~# a2enmod ssl
Module ssl installed; run /etc/init.d/apache2 force-reload to enable.

Setelah langkah di atas selesai, server Debian sudah bisa menerima koneksi SSL. Namun server masih listening pada protokol HTTP di port 80, dan bukan protokol HTTPS di port 443. Untuk dapat menggunakan SSL, pastikas bahwa terdapat script berikut, pada file ports.conf.

debian-server:~# vim /etc/apache2/ports.conf
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
Listen 443 #Add this line for SSL Connection
</IfModule>

Configuring your SSL Hosts
Langkah terakhir adalah untuk memastikan bahwa Virtual Host, dapat menerima koneksi SSL. Kita bisa menggunakan protokol HTTP ataupun HTTPS secara terpisah, ataupun secara bersamaan. 
Untuk referensi, berikut contoh konfigurasi VirtualHost milik saya.

debian-server:~# vim /etc/apache2/sites-available/debian
<VirtualHost *:80>
ServerName debian.edu
ServerAlias www.debian.edu
DocumentRoot /var/www/debian/
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
<VirtualHost *:443>
ServerName debian.edu
ServerAlias www.debian.edu
DocumentRoot /var/www/debian/
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/apache.pem
</VirtualHost>

Jangan lupa untuk mengaktifkan VirtualHost tersebut, agar di load ketika apache2 restart.
debian-server:~# a2ensite /etc/apache2/sites-available/debian
debian-server:~# /etc/init.d/apache2 restart

3.     Pengujian
Lakukan pengujian koneksi SSL melalui sisi client, untuk menguji RSA key dan SSL Certificate dari server Debian. Melalui web browser, arahkan URL ke https://debian.edu seperti berikut.




Jika itu pertama kali Anda mengakeses server Debian melalui koneksi SSL, maka akan muncul pesan seperti gambar di atas. Pilih saja Add Exception kemudian pilih Get Certificate.


Keyword : Securing Web Server

Previous
Next Post »

2 komentar

Write komentar
Unknown
AUTHOR
13 Mei 2015 pukul 07.05 delete

Ini buat linux ya gan? ijin coba dulu deh :D
kalau nanti saya gak bisa tolong ajarin ya pelan2

Reply
avatar