Kalau sebelumnya kita menginstall Apache, MariaDB dan PHP pada Centos 7, sekarang kita akan membuat virtual host dan memasang SSL/TLS pada server tersebut.
Apa itu Virtual Host ?
Virtual hosts merupakan fitur dari web server yang memungkinkan banyak web untuk diarahkan ke dalam satu server.
Jika diilustrasikan, virtual host kurang lebih seperti ini :

Web virtualhost1.com, virtualhost2.com dan virtualhost3.com sama-sama mengarah ke server yang sama, hanya saja oleh web server masing-masing web diarahkan ke direktori berbeda.
Membuat Virtual Host Apache
Dalam contoh ini, saya akan membuat virtual host untuk web vhost.dede-gunawan.web.id dan akan disimpan pada server dengan ip address 194.31.53.138.
Silahkan ganti web vhost.dede-gunawan.web.id dengan web yang ingin di setup dan sesuaikan dengan juga ip addressnya.
Persyaratan :
Kita harus mengarahkan web vhost.dede-gunawan.web.id terhadap ip 194.31.53.138 pada dns server kita.

Setelah web berhasil diarahkan, jika kita ping situs vhost.dede-gunawan.web.id hasilnya akan seperti gambar dibawah ini :

Setelah berhasil mengarahkan web ke server yang tepat barulah kita bisa membuat virtual host.
Buat dua direktori baru di server dengan perintah :
mkdir -p /var/www/vhost.dede-gunawan.web.id/html
mkdir -p /var/www/vhosts.dede-gunawan.web.id/log
Perintah pertama membuat direktori /var/www/vhost.dede-gunawan.web.id/html
yang nantinya akan digunakan untuk menyimpan file & data web kita.
Sedangkan perintah kedua membuat direktori /var/www/vhost.dede-gunawan.web.id/log
yang nantinya akan berisi file access.log
dan error.log
dari situs kita.
Selanjutnya atur kepemilikan dari direktori /var/www/vhost.dede-gunawan.web.id/html
menjadi milik apache dengan perintah :
chown -R apache:apache /var/www/vhost.dede-gunawan.web.id/html
jangan lupa juga atur status direktori /var/www/vhost.dede-gunawan.web.id
menjadi 755 dengan perintah :
chmod -R 755 /var/www/vhost.dede-gunawan.web.id
selanjutnya buat dua direktori konfigurasi vhost menggunakan perintah :
mkdir /etc/httpd/sites-available
dan
mkdir /etc/httpd/sites-enabled
Direktori sites-available
berfungsi untuk menyimpan semua virtual host yang tersedia di server, sedangkan direktori sites-enabled
berfungsi untuk menyimpan semua virtual host yang berjalan.
Ubah file /etc/httpd/conf/httpd.conf
dan tambahkan kode dibawah ini pada baris terakhir file :
IncludeOptional sites-enabled/*.conf
Pada direktori sites-available
buat file vhost.dede-gunawan.web.id.conf
dan isi dengan kode dibawah ini :
<VirtualHost *:80>
ServerName vhost.dede-gunawan.web.id
ServerAlias www.vhost.dede-gunawan.web.id
DocumentRoot /var/www/vhost.dede-gunawan.web.id/html
ErrorLog /var/www/vhost.dede-gunawan.web.id/log/error.log
CustomLog /var/www/vhost.dede-gunawan.web.id/log/access.log combined
</VirtualHost>
Daftarkan file vhost.dede-gunawan.web.id.conf
ke dalam direktori sites-enabled menggunakan symbolic link dengan perintah :
ln -s /etc/httpd/sites-available/vhost.dede-gunawan.web.id.conf /etc/httpd/sites-enabled/vhost.dede-gunawan.web.id.conf
Terakhir, jangan lupa restart web server kita dengan perintah :
systemctl restart httpd
Menambah file index.html
Selanjutnya adalah menambah file index.html
pada direktori /var/www/vhost.dede-gunawan.web.id/html
.
Isi dengan kode dibawah ini :
<html>
<head>
<title>Selamat Datang di vhost.dede-gunawan.web.id!</title>
</head>
<body>
<h1>Berhasil! virtual host web vhost.dede-gunawan.web.id berhasil dibuat.</h1>
</body>
</html>
Apa itu SSL/TLS
SSL/TLS merupakan fitur untuk mengamankan web dari pencurian data. SSL/TLS bekerja dengan cara melakukan enkripsi terhadap komunikasi yang dilakukan antara server dengan client.
Protokol web SSL/TLS menggunakan awalan https://
, berbeda dengan web biasa yang menggunkan awalan http://
.
SSL/TLS biasanya ada yang berbayar dan gratis. Pada artikel ini, saya akan menggunakan SSL/TLS versi gratis dari let’s encrypt.
Memasang SSL/TLS
Langkah pertama adalah install paket EPEL (Extra Packages for Enterprise Linux) terlebih dahulu menggunakan perintah :
yum install epel-release
selanjutnya install certbot untuk apache. Certbot merupakan tools yang akan kita gunakan untuk membuat ssl/tls dari let’s encrypt.
Perintah untuk menginstall certbot adalah :
yum install certbot python-certbot-apache mod_ssl
setelah proses instalasi berhasil, langkah selanjutnya meminta ssl/tls dari server let’s encrypt. Perintahnya adalah :
certbot --apache -d vhost.dede-gunawan.web.id
certbot nantinya akan melakukan verifikasi terhadap server kita dan menanyakan opsi redirect https-nya apakah akan otomatis atau tidak, saya biasanya akan memilih opsi redirect otomatis (pilihan no 2).

Sampai disini ssl/tls sudah berhasil diinstall.
Langkah selanjutnya adalah membuat cron job untuk otomatisasi pembaruan ssl/tls. Ini dibutuhkan karena sertifikat ssl/tls dari let’s encrypt hanya bertahan selama 3 bulan saja.
Saya membuat cron job yang akan meminta pembaruan otomatis setiap tanggal 1 jam 23.59.
Caranya, silahkan ketikkan perintah crontab -e
kemudian tambahkan script berikut dibagian akhir file konfigurasi :
59 23 1 * * /usr/bin/sudo /usr/bin/certbot renew --apache
Simpan dan keluar dari editor.
Kemudian lakukan restart pada cron job kita supaya mengenali perubahan konfigurasi menggunakan perintah :
systemctl restart crond
Video Demo Membuat Virtual Host & Memasang SSL/TLS
Tambahan
Saya biasa melakukan login ke server dalam mode root. Jika tidak login sebagai root, maka setiap perintah yang dijalankan di server harus diawali dengan perintah sudo
.
Terima kasih.
Referensi :
Wah keren ini, baru nemu skrang, makasih kak, setting vhost di centos kadang trcky, sukurnya nemu tulisan ini.
Monggo mampir ke blog ku kak : ilhamsp.com
makasih, semoga bermanfaat