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 :
Comments by dedegunawan
Metode Weighted Product
"error dimana pak?"
Metode Weighted Product
"di link yang mana mas?"
Metode Weighted Product
"saat ini belum ada mas,"
Metode Weighted Product
"murni dari judgement saya"
Metode Weighted Product
"bobot yang mana mas/mba? yang kriteria ya? bebas dalam hal..."