Ditutorial kali ini kita akan membahas cara menginstall Apache 2.4 di Debian/Ubuntu beserta install SSL gratis dari Let’s Encrypt. Dengan menggunakan Let’s Encrypt kita tidak perlu lagi membayar untuk SSL, bahkan SSL Wildcard sekalipun.
Install Apache Web Server
Install Apache 2.4 di Ubuntu/Debian dengan package manager apt
sudo apt install apache2 -y
di Debian setelah paket di install, servicenya akan otomatis dijalankan.
Paket tersebut sudah termasuk mod ssl untuk apache, aktifkan module tersebut
sudo a2enmod ssl
agar modul tersebut bisa dikenali, proses Apache harus di restart
sudo systemctl restart apache2
Konfigurasi VHOST Domain
Sebagai contoh kita akan menambah satu domain subdomain.example.com
, buat konfig vhost (virtual host) baru di /etc/apache2/sites-available/subdomain.example.com.conf
<VirtualHost *:443> ServerName subdomain.example.com DocumentRoot /var/www/html/ SSLEngine on SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key </VirtualHost>
Jangan khawatir karena kita masih menggunakan SSL dummy, nanti akan kita ganti dengan SSL yang di-trusted oleh browser. Konfigurasi ini kita gunakan untuk menggenerate SSL
test configurasi tersebut sebelum restart service apache, untuk memastikan tidak ada masalah
sudo apachectl configtest
bila hasilnya Syntax OK, baru restart Apache
sudo systemctl restart apache2
Aktifkan Vhost Apache
Konfigurasi Virtualhost yang baru dibuat belum bisa digunakan karena belum diaktifkan, aktifkan dengan
sudo a2ensite subdomain.example.com
reload service Apache
sudo systemctl reload apache2
Coba buka di browser https://subdomain.example.com
, masih muncul peringatan bila SSL yang digunakan tidak dikenali (self signed)
Install SSL di Apache
Untuk menginstall Let’s Encrypt di Linux ada banyak client yang digunakan seperti certbot dan acme.sh, saya pribadi lebih memilih acme.sh karena ditulis dengan BASH dan tanpa dependency. Mari install acme.sh dengan cara
curl https://get.acme.sh | sh
reload .bashrc
, agar script acme.sh
bisa dipanggil dari mana saja.
source ~/.bashrc
Install SSL Let’s Encrypt
Install SSL dengan bantuan acme.sh
acme.sh --issue -d subdomain.example.com -w /var/www/html/
subdomain.example.com
adalah domain/subdomain yang digunakan
/var/www/html
root dari domain tersebut, sesuaikan dengan DocumentRoot di config vhost
Setting Apache dengan Letsencrypt
Terakhir buka kembali konfigurasi vhost sebelumnya, lalu ubah baris
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
menjadi
SSLCertificateFile /root/.acme.sh/subdomain.example.com/fullchain.cer SSLCertificateKeyFile /root/.acme.sh/subdomain.example.com/subdomain.example.com.key
reload config Apache agar perubahannya dijalankan
sudo systemctl reload apache2
buka kembali browser anda, sudah tidak lagi ada notifikasi SSL tersebut tidak dikenali