Wednesday, May 27, 2015

Configure Web Server HTTP and HTTPS on CentOS 6


Assalamualaikum Wr Wb...


Kali ini saya akan menjelaskan tentang Konfigurasi Web Server HTTP dan HTTPS di CentOS 6



Konsep Dasar

Web Server adalah sebuah layanan kepada klien yang berupa website. Web Server sendiri mempunyai 3 protokol yaitu HTTP, HTTPS dan FTP. HTTP (Hyper Text Transfer Protocol) yang bertugas untuk mengatur komunikasi antara web browser dengan web server. Tidak dianjurkan untuk melakukan registrasi atau yang berhubungan dengan user dan password menggunakan protokol HTTP karena tidak aman dan bisa dilacak user dan password tersebut. Port default HTTP menggunakan 80 atau 8080.

HTTPS (Hyper Text Transfer Protocol Secure) yang sama fungsinya dengan HTTP tetapi HTTPS ini lebih aman karena menggunakan SSL (Secure Socket Layer) atau TLS (Transport Layer Security) sebagai sublayer dibawah HTTP. Sangat dianjurkan untuk melakukan registrasi atau yang berPort default untuk HTTPS menggunakan 443.

Untuk konfigurasi kali ini saya menggunakan 3 server yaitu untuk Server DNS, Web HTTP, HTTPS. DNS diperlukan untuk domain karena kita akan membuat 2 domain yang berbeda “zainun.web.id & zainun.net”. Untuk mengakses web HTTP dan HTTPS kita tidak perlu lagi menulis IP Address masing masing server. Disinilah fungsinya DNS Server sebagai pengganti IP Address ke Domain.

Untuk mengakses Web HTTP dibuatkan user authentication sedangkan Web HTTPS tidak menggunakan authentication user. Untuk file “index.html” 2 server harus saling bersinkronisasi berarti kita menggunakan NFS agar file index.html bisa sinkronisasi ke Web HTTP maupun ke HTTPS.


Keterangan :



IP Address :

DNS Server = 12.12.12.60/24
HTTP Server = 12.12.12.61/24
HTTPS Server = 12.12.12.62/24
Client = 12.12.12.63/24


Konfigurasi 


DNS Server

Untuk penjelasan DNS Server kalian bisa lihat di Configure DNS Server Master and Slave on CentOS 6
1. Pertama , kita install paket BIND terlebih dahulu. Karena BIND yaitu digunakan untuk DNS Server
yum install -y bind bind-utils 

2. Lalu edit file /etc/named.conf 
listen-on port 53 = Masukkan dengan IP Server DNS
allow-query = Masukkan dengan IP Block yang digunakan

3. Membuat zone untuk HTTP dan HTTPS yang akan kita gunakan. Dan untuk file reverse nya masukkan 1 saja.


4. Lalu masuk ke /var/named/ dan ganti file named.localhost menjadi file forward dan file named.loopback menjadi file reverse



5. Dan lalu ganti groupname untuk file Forward dan Reverse menjadi groupname named 
chgrp named forward.shuffahaqgzz.com(forwardfile)
chgrp named forward.shuffahaqgzz.net(forwardfile)
chgrp named reverse.shuffahaqgzz
ls -l

6. Kemudian edit file forward untuk HTTP Server


7. Selanjutnya edit file forward untuk HTTPS Server


8. Selanjutnya edit file reverse untuk DNS nya


9. Setelah itu kita restart named 
/etc/init.d/named restart
chkconfig named on


10. Selanjutnya masukkan nama search untuk nama domain dan nameserver untuk IP Server


11. Dan coba nslookup apakah sudah aktif atau belum domain nya. Jika sudah berarti kita berhasil membuat domain untuk HTTP dan HTTPS




HTTP Server

1. Pertama kita install paket nfs untuk melakukan mirror data dari HTTP Server ke HTTPS Server
yum install -y nfs-utils nfs-utils-lib

2. Lalu membuat direktori yang akan dimirror data


3. Lalu edit file /etc/exports dan tambahkan script dibawah ini untuk melakukan mirror folder IP Address


4. Lalu di restart nfs nya agar aktif
/etc/init.d/rpcbind restart
/etc/init.d/nfs restart
chkconfig nfs on

5. Kemudian jalankan perintah dibawah ini untuk mengaktifkan file script yang ada di file /etc/exports 


6. Sebelum mulai konfigurasi HTTP kita disable dahulu Selinux agar paket bisa terinstall atau konfigurasi dapat berjalan
nano /etc/selinux/config

7. Lalu disable lagi firewall nya
iptables -F
setenforce 0

8. Baru mulai install paket HTTP dengan cara
yum install -y httpd php

9. Membuat direktori untuk membedakan tempat index.html dan password authentication user 



10. Masuk ke direktori /tempatweb lalu buat file baru dengan nama ".htaccess"



11. Lalu membuat User baru untuk AuthUserFile pada tahap sebelumnya
htpasswd -cm /tempatweb/password/.htpasswd shuffahaqgzz(user)

12. Selanjutnya kita buat file index.html di /tempatweb/html dan tambahkan script untuk halaman di web HTTP


13. Lalu edit file /etc/httpd/conf/httpd.conf untuk konfigurasi.





<Directory "/tempatweb"> = Untuk menentukan letak .htaccess dan index.html 
AllowOverride AuthConfig = Untuk authentication user yang sudah kita buat di .htaccess
NameVirtualHost *:80 = Untuk aktifkan port 80 untuk HTTP
<VirtualHost *:80> = Untuk informasi VirtualHost HTTP supaya Synconize 
14. Jika sudah kita restart HTTP supaya aktif dengan cara
/etc/init.d/httpd restart 



HTTPS Server


1. Pertama kita install NFS untuk mengambil data dari HTTP Server
yum install -y nfs-utils nfs-utils-lib

2. Lalu selanjutnya kita restart dahulu NFS nya supaya aktif
service nfs restart 

3. Selanjutnya kita buat direktori untuk tempat yang akan memasukkan direktori yang akan di Mounting. Lalu mounting dengan IP dan direktori sebelumnya dan direktori yang baru kita buat.

mkdir /weweban/ 
mount 172.16.11.61:/tempatweb/    /weweban/
172.16.11.61 = IP HTTP Server untuk memounting direktori dari HTTP Server ke HTTPS Server
/tempatweb/ = Direktori yang dimounting dari HTTP Server ke HTTPS Server

4. Seperti HTTP Server , HTTPS Server juga harus mendisablekan Selinux agar konfigurasi dapat jalan.
nano /etc/selinux/config

5. Setelah itu matikan Firewall nya.
iptables -F
setenforce 0

6. Baru install paket untuk HTTPS. Bedanya dengan HTTP untuk paket HTTPS kita juga menginstall mod-ssl yaitu paket untuk secure web
yum install -y httpd php mod-ssl

7. Lalu buat direktori untuk menyimpan file SSL Certificate
mkdir /etc/httpd/ssl 

8. Lalu masukkan perintah dibawah ini , untuk menginput data informasi untuk Certificate SSL
openssl req -x509 -nodes -days 356 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt

9. Lalu edit file /etc/httpd/conf.d/ssl.conf

DocumentRoot "/weweban/html" = Untuk membaca penyimpanan Index.html 
ServerName www.shuffahaqgzz.com:443 = Untuk memberikan SSL untuk Web yang akan kita gunakan

10. Dan jangan lupa untuk mengecek SSLEngine apakah ON atau OFF , Jika OFF SSL kita tidak akan aktif


11. Kemudian cari pada bagian “SSLCertificateFile” kemudian ganti dengan file CRT yang sudah dibuat dan “SSLCertificateKeyFile” kemudian ganti dengan file KEY yang sudah dibuat.


12. Lalu kita restart supaya berjalan
/etc/init.d/httpd restart
chkconfig httpd on



Client

1. Pertama kita setting IP Address dahulu dengan IP DNS mengarah ke DNS Server kita supaya Web kita aktif
2. Dan coba kita buka Web HTTP dahulu, Jika ada perintah untuk memasukkan User/Nama pengguna dan Password/Sandi maka kita berhasil melakukan Konfigurasinya.

3. Dan akan muncul tampilan yang sudah kita buat di Index.html


4. Lalu kita coba buka yang HTTPS , Jika ada perintah memasukkan Certificate SSL berarti kita sudah berhasil Konfigurasi HTTPS. Coba masukkan dan akan muncul tampilan yang sudah kita buat tadi.


5. Dan coba cek Certificate SSL nya



Sekian dari penjelasan yang saya berikan , kurang lebihnya mohon dimaafkan. TERIMA KASIH.



Wassalamualaikum Wr Wb....
Unknown Admin Website

Blog ini tidak untuk di copy. Mohon untuk tidak mengcopy karya Blog ini. TERIMA KASIH

No comments:

Post a Comment