HTTPS adalah protokol komunikasi internet yang terenkripsi. Protokol ini dapat melindungi data pengguna agar ketika menuju server dengan meng-enkripsi transmisi data client server. Pada saat ini, HTTPS adalah sebuah mandatory untuk sebuah Website atau Web Service yang berkomunikasi dengan jaringan internet. Oleh karena itu, pastikan server anda sudah implementasi https meski yang paling dasar menggunakan Let’s Encrypt. Agar data pengguna anda aman pada saat mengakses server anda.
Baiklah, setelah kita mengenal konsep dasar https dan seberapa penting server kita untuk menggunakan https. Marilah kita mulai untuk meng-install Nginx Let’s Encrypt pada server kita. Ada beberapa tahap untuk melakukan hal ini yaitu, tahap pertama adalah Cek Prerequisite Server, instalasi Nginx Let’s Encrypt, dan Konfigurasi SSL Certificate.
1. Cek Prequisite Server
Untuk meng-install https pada server kita, ada beberapa hal yang harus kita siapkan yaitu :
- Pastikan server anda telah memiliki domain atau sub-domain yang A record telah tertuju pada IP server anda. Pastikan A record telah terisi dengan benar ke IP server anda.
Contoh di atas adalah hasil konfigurasi A record untuk domain saya blog.rozik.in yang saya arahkan ke IP server VPS saya. Jika anda belum memiliki domain untuk server anda, maka anda tidak dapat menggunakan fasilitas SSL Gratis dari Let’s Encrypt. - Langkah ke 2 adalah pastikan server Ubuntu anda telah ter-install nginx yang akan kita gunakan untuk implementasi https. Tutorial cara menginstal nginx dapat anda lihat pada link berikut :Instalasi Nginx pada Ubuntu Server.
Setelah semua prequisite telah dipenuhi, langkah selanjutnya adalah meng-install modul yang diperlukan untuk implementasi https dari Let’s Encrypt.
2. Instalasi Nginx Let’s Encrypt
Untuk meng-install aplikasi certification Let’s Encrypt anda dapat menggunakan apt update kemudian meng-install paket yang dibutuhkan dengan menggunakan perintah :
sudo apt update
Kemudian install paket yang dibutuhkan :
sudo apt install certbot python3-certbot-nginx
Setelah perintah berhasil anda eksekusi, langkah selanjutnya adalah melakukan pengecekan pada konfigurasi server block nginx anda.
3. Konfigurasi Certbot SSL Certificate
Langkah selanjutnya adalah mengecek server block nginx anda. Anda dapat melihat konfigurasi server blok anda pada direktori “/etc/nginx/sites-available/blog.rozik.in“. Pastikan server block anda terisi dengan server name domain yang akan anda gunakan.
server {
listen 80;
server_name blog.rozik.in;
}
Kemudian cek konfigurasi nginx anda telah benar atau tidak dengan menggunakan perintah :
sudo nginx -t
Jika output yang keluar sebagai berikut :
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Artinya konfigurasi anda telah berhasil, kemudian restart service nginx dengan :
sudo systemctl reload nginx
Jika berhasil, kemudian cobalah akses domain server anda, apakah sudah dapat anda akses meskipun tanpa protokol https://
Langkah selanjutnya jika konfigurasi server blok berhasil, adalah mengaktifkan Certification Bot Let’s Encrypt agar memasang https pada server blok anda. Untuk melakukannya, gunakan perintah :
sudo certbot --nginx -d blog.rozik.in
Anda dapat mengaktifkan certbot lebih dari satu domain dengan menambahkan domain selanjutnya dengan “-d domain1.com -d domain2.com”. Setelah itu anda diberi pilihan, untuk melakukan redirect http ke https secara otomatis atau tidak.
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
Jika anda memilih opsi 1 atau no, maka semua traffic http anda akan tetap dilanjutkan ke protokol http. Sedangkan jika anda memilih opsi 2 atau yes, maka semua traffic http anda akan diarahkan ke protokol https. Dengan kata lain, protokol server anda akan selalu menggunakan https dan lebih aman. Saran saya pilih opsi ke 2.
Setelah langkah ini berhasil. Artinya konfigurasi certification https anda telah berhasil, dan Website atau Web Service dapat diakses secara aman menggunakan protokol https
Sebenarnya anda telah berhasil melakukan instalasi https pada server anda, jika anda ingin menambahkan https pada server block baru anda, anda dapat mengulangi tahap 3 pada tutorial ini. Kemudian, untuk mengecek apakah Certification Bot anda telah berjalan atau tidak. Gunakan perintah di bawah ini untuk mengeceknya :
sudo systemctl status certbot.timer
Setelah memasukkan perintah di atas, anda dapat melihat status dari Certification Bot anda seperti :
? certbot.timer - Run certbot twice daily
Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled)
Active: active (waiting) since Sun 2022-04-24 23:05:07 CST; 6min ago
Trigger: Mon 2022-04-25 11:00:49 CST; 11h left
Apr 24 23:05:07 iZk1adhb0tq3inod6cjlahZ systemd[1]: Started Run certbot twice daily.
Dari informasi di atas, kita dapat melihat bahwa Certification Bot akan melakukan renewal https certificate dua kali dalam sehari agar certificate anda tetap valid. Kemudian untuk melakukan percobaan apakah tidak ada kesalahan dalam konfigurasi Certification Bot. Anda dapat mengeceknya dengan perintah :
sudo certbot renew --dry-run
Jika tidak ada indikasi kesalahan atau error setelah mengeksekusi perintah tersebut, maka artinya Certification Bot anda telah berhasil berjalan dengan lancar dan otomatis agar sertifikasi https anda selalu aman dan valid.
Selamat ya….