Knowledgebase

Web Server HTTPS : Secure HTTP Protocol pada CentOS

Portal Home > Knowledgebase > CentOS > 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 :

#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 :

# 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

#vi +/SSLCertificateFile /etc/httpd/conf.d/ssl.conf

Mengubah path untuk mencocokkan di mana file kunci disimpan.

SSLCertificateFile /etc/pki/tls/certs/ca.crt

Kemudian mengatur path untuk Sertifikat Key File

SSLCertificateKeyFile /etc/pki/tls/private/ca.key

restart Apache

#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





AllowOverride All

DocumentRoot /var/www/html
ServerName 172.18.3.184

NameVirtualHost *:443

SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/ca.crt
SSLCertificateKeyFile /etc/pki/tls/private/ca.key

AllowOverride All

DocumentRoot /var/www/secure
ServerName 172.18.3.184




kemudian restart Apache

#service httpd restart

4.   Configure firewall

Langkah terakhir kita set konfigurasi firewall agar menerima request yang melalui port 443

#iptables -A INPUT -p tcp --dport 443 -j ACCEPT
#/sbin/service iptables save
#iptables -L -v

sekian, selamat mencoba
Was this answer helpful?
30 Users Found This Useful 62 Votes

Also Read