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)
ssl self signed warning

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
generate ssl letsencrypt sukses

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
ssl letsencrypt no warning

Leave a comment

Your email address will not be published. Required fields are marked *