Cara Mengamankan Apache Menggunakan Let’s Encrypt di Ubuntu 18.04
Let’s Encrypt merupakan Certificate Authority (CA) yang memberikan kemudahan dalam meng install dan mendapatkan TLS/SSL Certificate yang memungkinkan untuk mengaktifkan HTTPS pada webserver. Dengan menggunakan certbot proses installasi Certificate akan secara otomatis khususnya webserver Apache dan Nginx.
Pada tulisan kali ini kita akan menggunakan certbot untuk mendapatkan free SSL Certificate di Apache pada Ubuntu Server 18.04, serta SSL akan automatis di perbarui.
Prerequisites
Pastikan Ubuntu Server sudah terinstall LAMP atau minimal apache dan akses root atau sudo user untuk menjalankan command line
Memiliki fully registered Domain Name. Domain public yang valid. Sebagai contoh saya akan install SSL di ns1.dmu.my.id
Tambahkan A Record di DNS yang mengarah ke IP Server yang kita gunakan. Baik untuk namadomain.xyz atau www.namadomain.xyz
Install Certbot
Masuk ke server via ssh dan Tambahkan repository certbot
1 |
sudo add-apt-repository ppa:certbot/certbot |
Tekan enter untuk melanjutkan dan Install Certbot Apache menggunakan apt
1 |
sudo apt install python-certbot-apache |
Setting SSL Certificate
Certbot akan secara otomatis mengecek virtual host pada apache, terutama dengan melihat ServerName directive yang sesuai dengan request certificate yang diminta.
Virtualhost block terletak di /etc/apache2/sites-available/yourdomain.com.conf . Untuk mengecek buka virtualhost file dengan menggunakan nano atau text editor lain misal:
1 |
sudo nano /etc/apache2/sites-available/your_domain.conf |
Cek pada bagian ServerName pastikan sesuai dengan file config nya.
Cek Configurasi dengan :
1 |
sudo apache2ctl configtest |
Reload Apcahe dengan perintah
1 |
sudo systemctl reload apache2 |
Allow HTTPS di Firewall
Jika ufw firewall aktif, ubah setting agar mengijinkan traffic https. Cek status ufw
1 |
sudo ufw status |
Ijinkan profile Apache Full dan delete profile yang lain
1 2 |
sudo ufw allow 'Apache Full' sudo ufw delete allow 'Apache' |
Install SSL Certificate
1 |
sudo certbot --apache -d your_domain -d www.your_domain |
-d untuk menentukan domain name yang akan di create certificate nya. Dan Certbot akan meminta konfigurasi HTTPS apakah akan Redirect atau No redirect. pilih dan Enter
Setelah itu proses create certificate selesai dan akan di reload oleh apache. Coba buka server anda dan menggunakan prefix https
Certbot Auto Renewal
Lets Encrypt hanya berlaku untuk 90hari setelah itu kita perlu membuat agar automatis diperbarui. Certbot sudah ada fitur untuk autorenewal dengan menambahkan script di /etc/cron.d . Script ini akan running sehari dua kali dan otomatis akan mengupdate certificate yang akan expired dalam 30hari.
Test Renewal :
1 |
sudo certbot renew --dry-run |
Jika tidak ada error yang muncul. Sampai disini lets encrypt berhasil di install dengan baik.