How To Secure Nginx with Let's Encrypt on Ubuntu 20.04

How To Secure Nginx with Let's Encrypt on Ubuntu 20.04

Pernah gak sih kita terfikirkan website yang ada di dunia ini jika hanya memakai HTTP port 80 saja mungkin tidak akan aman, apalagi seperti website Bank, E-Commerce, dan data2 yang penting yang di simpan di website publik. Untuk mengamankan website tersebut maka di butuhkan lah tambahan dari HTTP yaitu HTTPS, S tersebut di ambil dari TLS/SSL certificates. Jika website tersebut sudah menggunakan HTTPS maka website tersebut sudah peningkatan dalam hal keamanan, ya hal lain tidak tahu jika ada bug dari backend aplikasi nya yang masih rentan keamanan.

Pada saat ini untuk TLS/SSL certificates kita menggunakan Let's Encrypt. Kenapa kita menggunakan Let's Encrypt yess jawaban nya karena ini FREE, kita dengan mudah dapat menginstall langsung di website yang sudah kita bangun tanpa fee sedikitpun. Berikut ini tahapan untuk menginstall Let's Encrypt lets this out. Pada tahap ini kita sudah menginstall nginx yaps!!

Step 1 - Installing Certbot.

$ sudo apt install certbot python3-certbot-nginx

Step 2 - Confirming Nginx’s Configuration

pada tahap ini Certbot akan membutuhkan server block yang bener di Nginx Configuration untuk me otomatisasi konfigurasi SSL. Untuk mengecek nya buka file

$ sudo nano /etc/nginx/sites-available/example.com

didalam file tersebut cari baris dengan nama server_name.

...
server_name example.com www.example.com;
...

jika sudah dipastikan konfigurasi seperti di atas maka selanjut nya save dan konfirmasi adakah yang error pada nginx.

$ sudo nginx -t

dan jika tidak ada restart server nginx.

$ sudo systemctl reload nginx

Step 3 - Allow HTTPS Through the Firewall (UFW)

cek settingan firewall yang berjalan

$ sudo ufw status

Jika tertera di output tersebut "Nginx HTTP" saja maka rubah dengan menggunakan perintah.

$ sudo ufw allow 'Nginx Full'
$ sudo ufw delete allow 'Nginx HTTP'

dan cek kembali seharusnya output sudah menampilkan "Nginx Full"

Step 4 - Obtaining an SSL Certificate

$ sudo certbot --nginx -d example.com -d www.example.com

jadi certbot dengan nginx plugin memakai -d untuk spesifik domain yang akan di certificate kan. output nya nanti akan seperti ini. Nanti akan di tanya email dan persetujuan konfirmasi jawab saja "Y" semua.

Step 5 - Verifying Certbot Auto-Renewal

jadi certificate ini kan ada jangka masa waktu nya, let's encrypt hanya berlaku 29 hari dan gak mungkin kan kita ingat terus kapan habis jangka masa waktu nya nah di sini kita gunakan certbot timer.

$ sudo systemctl status certbot.timer

untuk test memperpanjang jangka masa waktu, kita akan coba dry run dengan certbot

$ sudo certbot renew --dry-run

jika tidak ada error, berarti kita berhasil konfigurasi sampai selesai. Thank u