Thursday, August 14, 2014

Web Server HTTPS : Secure HTTP Protocol pada CentOS

Pada beberapa halaman web kita sering menemukan alamat yang menggunakan “https://” seperti pada login aplikasi bank, paypal, facebook, email, dll. apakah sebenarnya https itu? dan bagaimana kita menyediakan webserver dengan fitur https?
HTTPS adalah kepanjangan dari Hypertext Transfer Protocol Secure yang merupakan sebuah protokol kombinasi antara HTTP (Hypertext Transfer Protocol) dan Cryptographic Protocol. Pada protokol ini selain menggunakan komunikasi plain text, juga menyandikan data sesi dengan menggunakan protokol SSL (Secure Socket Layer) atau Protokol TLS (Transport Layer Security). Pada umumnya Port yang digunakan adalah port 443 dan url yang digunakan adalah https://
menyediakan webserver https
Untuk menyediakan webserver berbasis https, saya mencoba melakukan instalasi pada mesin webserver dengan sistem operasi CentOS. langkah-langkahnya adalah :
1.  Mendapatkan paket aplikasi yang dibutuhkan
Paket aplikasi yang dibutuhkan adalah mod_ssl dan OpenSSL. mod_ssl adalah interface yang digunakan Apache untuk menggunakan OpenSSL. kita bisa menginstallnya menggunakan yum atau rpm.
Untuk instalasi dengan yum caranya :
1
yum install mod_ssl openssl
2.  Men-generate “self-signed certificate“
Untuk menyiapkan sebuah web server agar menerima koneksi HTTPS, administrator harus membuat sertifikat kunci publik untuk server web. Sertifikat ini harus ditandai oleh otoritas sertifikat yang terpercaya agar semua browser web bisa menerimanya koneksi HTTPS dari web server kita. Sertifikasi ini untuk menyatakan bahwa pemegang sertifikat tersebut memang merupakan sertifikat resmi. Web browser pada umumnya didistribusikan dengan sertifikat yang resmii sehingga mereka dapat memverifikasi koneksi HTTPS web server kita. Sertifikat sekuritas ini ada yang gratis (free) ada juga yang berlangganan antara US$13 – US$1.500 per tahun.
Tapi ada cara lain, yaitu membuat sertifikat kita sendiri, tetapi resikonya setiap web browser akan memberikan peringatan bahwa sertifikat milik web server kita tidak resmi. Untuk mendapatkan sertifikat sekuritas langkahnya adalah :
1
2
3
4
5
6
7
8
9
10
11
12
13
# Generate private key
openssl genrsa -out ca.key 1024
 
# Generate CSR
openssl req -new -key ca.key -out ca.csr
 
# Generate Self Signed Key
openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
 
# Move the files to the correct locations
mv ca.crt /etc/pki/tls/certs
mv ca.key /etc/pki/tls/private/ca.key
mv ca.csr /etc/pki/tls/private/ca.csr
Kemudian kita harus mengupdate konfigurasi Apache SSL
1
nano +/SSLCertificateFile /etc/httpd/conf.d/ssl.conf
Mengubah path untuk mencocokkan di mana file kunci disimpan.
1
SSLCertificateFile /etc/pki/tls/certs/ca.crt
Kemudian mengatur path untuk Sertifikat Key File
1
SSLCertificateKeyFile /etc/pki/tls/private/ca.key
restart Apache
1
service httpd restart
3.  Mengeset Virtual Host
Nah kemudian kita membuat virtual host pada webserver kita agar kita mempunyai 2 host yang berbeda dalam 1 webserver.
Misalnya kita akan mengarahkan host http port 80 ke direktori /var/www/html/ dan untuk host https port 443 ke direktori /var/www/secure/. Maka kita lakukan modifikasi pada file konfigurasi apache /etc/httpd/conf/httpd.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<VirtualHost *:80>
        <Directory /var/www/html>
        AllowOverride All
        </Directory>
        DocumentRoot /var/www/html
        ServerName 172.18.3.184
</VirtualHost>
NameVirtualHost *:443
<VirtualHost *:443>
        SSLEngine on
        SSLCertificateFile /etc/pki/tls/certs/ca.crt
        SSLCertificateKeyFile /etc/pki/tls/private/ca.key
        <Directory /var/www/secure>
        AllowOverride All
        </Directory>
        DocumentRoot /var/www/secure
        ServerName 172.18.3.184
</VirtualHost>
kemudian restart Apache
1
service httpd restart
4.  Configure firewall
Langkah terakhir kita set konfigurasi firewall agar menerima request yang melalui port 443
1
2
3
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
/sbin/service iptables save
iptables -L -v

sekian, selamat mencoba

Related Articles

0 komentar :

Post a Comment