
How To Secure Nginx with Let's Encrypt on Ubuntu 20.04
Learn how to secure your Nginx server with Let's Encrypt SSL certificates on Ubuntu 20.04. This guide provides step-by-step instructions for setting up HTTPS, ensuring your website is secure and trusted by users.
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.
Untuk menginstall Let’s Encrypt kita harus menginstall Certbot terlebih dahulu, Certbot adalah sebuah tool yang digunakan untuk mengelola TLS/SSL certificates dari Let’s Encrypt. Kita bisa menginstall Certbot dengan perintah berikut:
$ sudo apt install certbot python3-certbot-nginx
Step 2 - Confirming Nginx’s Configuration
Sebelum kita menginstall Let’s Encrypt kita harus memastikan bahwa konfigurasi Nginx kita sudah benar, jika belum benar maka kita harus memperbaikinya terlebih dahulu. Untuk mengecek konfigurasi Nginx kita bisa menggunakan perintah berikut:
$ sudo nano /etc/nginx/sites-available/example.com
Pastikan bahwa konfigurasi Nginx kita sudah benar, seperti berikut ini:
...
server_name example.com www.example.com;
...
Jika sudah benar kita bisa menyimpan dan keluar dari editor dengan menekan CTRL + X
, kemudian tekan Y
untuk menyimpan perubahan, dan tekan Enter
untuk keluar.
$ sudo nginx -t
Jika konfigurasi Nginx kita sudah benar maka akan muncul pesan seperti berikut:
nginx: configuration file /etc/nginx/nginx.conf test is successful
Jika muncul pesan tersebut maka kita bisa melanjutkan ke langkah berikutnya.
$ sudo systemctl reload nginx
Step 3 - Allow HTTPS Through the Firewall (UFW)
Jika kita menggunakan UFW (Uncomplicated Firewall) untuk mengelola firewall di server kita, maka kita harus mengizinkan akses HTTPS melalui firewall. Kita bisa melakukannya dengan perintah berikut:
$ sudo ufw status
Jika status firewall kita belum mengizinkan akses HTTPS, maka kita bisa mengizinkannya dengan perintah berikut:
$ sudo ufw allow 'Nginx Full'
Jika sudah mengizinkan akses HTTPS, kita bisa mengecek kembali status firewall kita dengan perintah berikut:
$ sudo ufw status
Jika sudah mengizinkan akses HTTPS, maka akan muncul pesan seperti berikut:
Status: active
To Action From
-- ------ ----
Nginx Full ALLOW Anywhere
Nginx Full (v6) ALLOW Anywhere (v6)
Step 4 - Obtaining an SSL Certificate
$ sudo certbot --nginx -d example.com -d www.example.com
Perintah di atas akan meminta Certbot untuk mengeluarkan sertifikat SSL untuk domain example.com
dan www.example.com
. Certbot akan secara otomatis mengonfigurasi Nginx untuk menggunakan sertifikat tersebut.
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. Untuk memastikan bahwa sertifikat SSL kita akan diperbarui secara otomatis, kita bisa memeriksa status timer Certbot dengan perintah berikut:
$ 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.
Conclusion
Dengan mengikuti langkah-langkah di atas, kita telah berhasil mengamankan server Nginx kita dengan Let’s Encrypt SSL certificates pada Ubuntu 20.04. Ini adalah langkah penting untuk memastikan keamanan data dan kepercayaan pengguna terhadap website kita. Jangan lupa untuk selalu memperbarui sertifikat SSL secara berkala dan memeriksa konfigurasi Nginx kita agar tetap aman. Jika ada pertanyaan atau kendala, jangan ragu untuk bertanya di kolom komentar.