Jumat, 20 Agustus 2010

Web Server & Virtual Host & HTTPS


Web Server
Web server adalah software yang menjadi tulang belakang dari world wide web (www). Web server menunggu permintaan dari client yang menggunakan browser seperti Netscape Navigator, Internet Explorer, Modzilla, dan program browser lainnya.
Jika ada permintaan dari browser, maka web server akan memproses permintaan itu kemudian memberikan hasil prosesnya berupa data yang diinginkan kembali ke browser.
Data ini mempunyai format yang standar, disebut dengan format SGML (standar general markup language). Data yang berupa format ini kemudian akan ditampilkan oleh browser sesuai dengan kemampuan browser tersebut.
Contohnya, bila data yang dikirim berupa gambar, browser yang hanya mampu menampilkan teks (misalnya lynx) tidak akan mampu menampilkan gambar tersebut, dan jika ada akan menampilkan alternatifnya saja. Web server, untuk berkomunikasi dengan client-nya (web browser) mempunyai protokol sendiri, yaitu HTTP (hypertext transfer protocol).


Konfigurasi Virtual Host
Jika sudah menginstall apache dan php maka pada direktori /etc/apache2 terdapat direktori :
apache2.conf conf.d envvars httpd.conf mods-available mods-enabled ports.conf sites-available sites-enabled
Pada direktori apache2 terdapat direktori dan fungsi masing – masing. Berikut penjelasan dari masing – masing direktori :
  • mods-available yaitu berisi module tersedia
  • mods-enabled yaitu berisi module yang sudah terload / aktifkan
  • sites-available yaitu berisi daftar daftar file situs / file vhost
  • sites-enabled yaitu berisi daftar file vhost yg sedang diload
Berikut langkah – langkah dalam mengkonfigurasikan virtual host pada ubuntu :
1. Buat file pada pada direktori sites-available
#touch situsku
2. Tambahkan isi file berikut :
NameVirtualHost *:80

ServerAdmin eka@rmm-solution.com
ServerName www.ekawidi.com
ServerAlias ekawidi.com
DocumentRoot /var/www/ekawidi
ErrorLog /var/log/apache2/error-ekawidi.log
CustomLog /var/log/apache2/access-ekawidi.log combined

Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all


3. Simpan file tersebut
4. Disable site vhosts yang sedang diload server saat ini. Lihat pada direktori site-enabled
#ls sites-enabled
default
#sudo a2dissite default
5. Enabled site / vhosts yang sudah dibuat
#a2enssite situsku
6. restart apache agar mereload file konfigurasi
#sudo /etc/init.d/apache2 reload
7. Jika berhasil buka browser dan tulis link : http://www.ekawidi.com maka virtual host anda akan berjalan dengan baik.
8. Jika anda ingin membuat vhost lagi maka tambahkan daftar isi vhost anda seperti point no 2 diatas kemudian restart web server anda agar konfigurasi dapat diload.
HTTPS
HTTPS adalah versi aman dari HTTP, protokol komunikasi dari World Wide Web. Ditemukan oleh Netscape Communications Corporation untuk menyediakan autentikasi dan komunikasi tersandi dan penggunaan dalam komersi elektris.
Selain menggunakan komunikasi plain text, HTTPS menyandikan data sesi menggunakan protokol SSL (Secure Socket layer) atau protokol TLS (Transport Layer Security). Kedua protokol tersebut memberikan perlindungan yang memadai dari serangan eavesdroppers, dan man in the middle attacks. Pada umumnya port HTTPS adalah 443.
Tingkat keamanan tergantung pada ketepatan dalam mengimplementasikan pada browser web dan perangkat lunak server dan didukung oleh algorithma penyandian yang aktual.
Oleh karena itu, pada halaman web digunakan HTTPS, dan URL yang digunakan dimulai dengan ‘https://’ bukan dengan ‘http://’
Kesalahpahaman yang sering terjadi pada pengguna kartu kredit di web ialah dengan menganggap HTTPS “sepenuhnya” melindungi transaksi mereka. Sedangkan pada kenyataannya, HTTPS hanya melakukan enkripsi informasi dari kartu mereka antara browser mereka dengan web server yang menerima informasi. Pada web server, informasi kartu mereke secara tipikal tersimpan di database server (kadang-kadang tidak langsung dikirimkan ke pemroses kartu kredit), dan server database inilah yang paling sering menjadi sasaran penyerangan oleh pihak-pihak yang tidak berkepentingan
Konfigurasi HTTPS dengan apache2(web server) dan ssl(openssl & ssl-cert)
a. Pembuatan kunci private dengan metode enkripsi pengiriman 3des
#openssl genrsa -des3 -out server.key ***(*isi dengan kunci yang diinginkan)
b. Membuat permintaan penandatanganan sertifikat dengan kunci yang dihasilkan pada langkah a. Pada langkah ini masukkan atribut dari sertifikat sesuai keadaan sebenarnya begitupula pada kolom CN(common name) harus diisikan dengan alamat web yang akan digunakan.
 #openssl req -new -key server.key -out server.csr
c. Membuat sertifikat dan diatur masa berlakunya
 #openssl x509 -req -days * -in server.csr -signkey server.key -out server.crt(*isi dengan kunci yang diinginkan)
d. Membuat sertifikat insecure
#openssl rsa -in server.key -out server.key.insecure
#mv server.key server.key.secure
#mv server.key.insecure server.key
Baris-baris perintah di atas akan menghasilkan file-file:
server.crt : sertifikat yang dihasilkan oleh server
server.csr : Permintaan penandatanganan sertifikat server.
server.key : kunci pribadi (Private) server, yang tidak memerlukan password ketika memulai apache.
server.key.secure: kunci pribadi server, yang memerlukan password ketika memulai apache.

e. menggandakan atau memindahkan file server.key dan server.crt ke dalam folder yang mudah diakses oleh Apache.
 #mv server.crt /etc/apache2/ssl/certs/
#mv server.key /etc/apache2/ssl/keys/
f. Mengaktifkan modul SSL
 #a2enmod ssl
g. membuat satu situs khusus untuk akses HTTPS
 #cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
#mkdir /var/secure
h. Edit berkas /etc/apache2/sites-available/ssl, ubah 3 baris teratas menjadi seperti snippet berikut ini:
NameVirtualHost *:443

ServerAdmin webmaster@localhost
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/cert/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/keys/server.key
DocumentRoot /var/secure/
#baris selanjutnya biarkan saja .....
i. Enable situs SSL yang baru dibuat tadi kemudian
# a2ensite ssl

j. Ubah 2 baris teratas berkas /etc/apache2/sites-available/default menjadi seperti snippet berikut ini:
NameVirtualHost *:80

#baris berikutnya biarkan saja.....
k. Apache juga harus mendengarkan port 443 untuk menerima permintaan HTTP, untuk itu ubah isi berkas /etc/apache2/ports.conf menjadi:
Listen 80
Listen 443
l. reload Apache:
 #/etc/init.d/apache2 force-reload
m. Buka alamat web dengan url diawali https lalu install sertifikat, jika halaman web tidak muncul jalankan perintah berikut
 #/etc/init.d/apache2 reload
#/etc/init.d/apache2 restart
Dengan menggunakan protokol HTTPS maka saat pengguna mengirimkan data, data tersebut akan dienkripsi.

Tidak ada komentar:

Posting Komentar