16 July 2013

Konfigurasi HTTPS dan HTTP Secara Bersamaan di Linux Ubuntu Server 12.04


Hiya,,,ketemu lagi di blog Tutorial Linux Ubuntu Berbahasa Indonesia. Di artikel ini saya akan berbagi pengalaman saya dalam mengatasi kasus HTTP dan HTTPS yang harus di running secara bersamaan. Saya akan menjelaskan bagaimana cara mengkonfigurasi HTTP dan HTTPS di linux agar berjalan bersamaan.
Terkadang metode ini penting juga dilakukan. Misalnya di website anda terdapat sebuah halaman login yang memerlukan enkripsi password supaya tidak dapat di sniff oleh para babi hacker diluar sana :D

Sebagai System Administrator kadang saya cukup paranoid hal ini terjadi, daripada saya harus mengambil resiko lebih besar, jadi saya putuskan untuk mengaktifkan metode ini disalah satu server yang saya kelola. Saya mengaktifkan metode ini di dalam Ubuntu Server 12.04 LTS Precise Pangolin. Untuk konfigurasinya tidak terlalu sulit ternyata. Akan saya jelaskan step by step konfigurasi HTTPS dan HTTP nya.


Step 1
Hal pertama yang tentunya kita perlukan adalah web server. Saya memakai apache sebagai web server.
sudo apt-get install apache2
Step 2
Langkah selanjutnya adalah mengaktifkan mode ssl kita.
sudo a2enmod ssl
Step 3
Selanjutnya kita restart apache.
sudo service apache2 restart
Step 4
Kita membutuhkan sebuah folder untuk menyimpan server key dan sertifikat. Simpan ini didalam folder apache kita.
sudo mkdir /etc/apache2/ssl
Step 5
Pada bagian ini kita akan membuat Sertifikat SSL
openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
Saat kita meminta sertifikat baru, kita bisa meminta berapa lama sertifikat itu berlaku. Dalam contoh ini saya membuatnya mempunyai masa berlaku selama 2 tahun, dan menyimpan keduanya di direktori yang tadi kita buat. Di  /etc/apache2/ssl/

Output dari perintah diatas adalah seperti ini :
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [AU]:ID
State or Province Name (full name) [Some-State]:Jawa Barat
Locality Name (eg, city) []:BDG
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Apocalypsix.Inc
Organizational Unit Name (eg, section) []:Dept Dreams
Common Name (e.g. server FQDN or YOUR name) []:stark.com
Email Address []:apocalypsix@gmail.com

Step 6
Karena kita mengaktifkan 2 metode, HTTP dan HTTPS. Jadi kita lupakan HTTP, karena ini sudah pasti akan berfungsi seperti seharusnya. Komponen apache yang menunjukkan dimana letak website kita disimpan ada pada file default. Ini berada di /etc/apache2/sites-available/default. Itu adalah salah satu komponen apache yang menunjukkan letak alamat website kita. Secara default file ini merujuk ke /var/www/. Didalam /etc/apache2/sites-available/ terdapat 2 buah file, yang satu adalah file default tadi, dan yang kedua adalah default-ssl. Kita akan fokus pada file default-ssl.

Buka File default-ssl
sudo nano /etc/apache2/sites-available/default-ssl
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName www.imtelkoms.ac.id
DocumentRoot /var/www/www2

# Tambahkan baris ini di file default-ssl anda

SSLEngine On
SSLCertificateFile      /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile   /etc/apache2/ssl/apache.key
Selanjutnya cari baris ini dan berikan tanda comment (#):
# SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
#
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
Save lalu exit.

Step 7
Aktifkan website default-ssl.
Sudo a2ensite default-ssl
Step 8
Baiklah semuanya telah selesai, sekarang restart apache kita.
Sudo service apache2 restart
Dengan konfigurasi tadi kita mempunyai 2 metode didalam website kita, dimana untuk website dengan metode HTTPS, para babi hacker tidak akan bisa mendapatkan password account siapa saja didalam website kita.

Karena sertifikat yang kita miliki ini adalah buatan sendiri maka ketika mengakses https://websitekita.com maka yang muncul adalah Security Warning seolah-olah kita mengakses website yang tidak aman. Untuk melanjutkan ke website kita pilih saja pilihan add exception pada browser anda.

Ada perbedaan diantara sertifikat yang gratis, dan yang berbayar sekaligus verified. Perbedaan ini sangat jelas ketika kita pertama kali membuka url tersebut di browser kita.

Untuk yang gratis buatan kita sendiri, akan tampil seperti ini :

Hand made - not verified

Sedangkan yang berbayar dan verified akan tampil seperti ini :

Paid - verified


Saya rasa cukup untuk artikel ini, semoga informasi yang anda serap dapat berguna dalam mengatasi kasus konfigurasi HTTPS di linux maupun konfigurasi HTTPS & HTTP secara bersamaan.

Semoga bermanfaat,
Salam penguin! :)

No comments:

Post a Comment