KATEGORI: WEB SERVER LINUX
SSL di Nginx itu mudah!
Sebuah cara yang digunakan untuk mengonfigurasi SSL pada nginx.
Kalian udah siap belum belajar nginx lebih dalam? Kita akan belajar nginx dimulai dari tahap instalasi, saya gak akan bertele-tele untuk menjelaskannya. Point penting di blog ini adalah praktikumnya! Saya sarankan kalian membaca dokumentasi tentang nginx di webnya langsung atau bisa juga di website lainnya. Sebelum lanjut, saya mau kasihtau agenda untuk belajar nginx ada 2 bagian. Baca dulu yuk!
1. Installasi Nginx
2. Setup HTTPS with OpenSSL
Selain agendanya udah tau, kalian juga harus tau persyaratannya!
1. Sudah membaca dokumentasi tentang nginx.
2. Sudah mengetahui cara kerja koneksi virtual network ( jika menggunakan mesin virtualisasi ).
3. Sudah menginstall Linux Debian ( Tutorial kali ini menggunakan Debian 9.12.0 ).
4. Sudah mengerti dasar perintah linux debian.
Pasti udah ngedumel aja ya “katanya ga bertele-tele, ini daritadi ngapain!”, iya-iya deh saya mulai sekarang pembelajarannya.
1. Instalasi Nginx
Ketiklah perintah dibawah ini untuk menginstall paket nginx web server;
root@server:~# apt-get install nginx -y
root@server:~# nginx -v
CTRL+X+Y+ENTER untuk keluar.
Gambar diatas adalah salah satu hasil output jika kalian sudah menginstall paket nginx dengan benar, jika ada kesalahan saat menginstallasi coba ketik dulu perintah dibawah ini, lalu bandingkan dengan konfigurasi milik saya.
root@server:~# nano /etc/apt/sources.list
CTRL+X+Y+ENTER untuk keluar dan save.
Coba tambahkan tulisan-tulisan yang berwarna kedalam file konfigurasi repository milik kalian, umumnya permasalahan instalasi paket berawal dari sini. Kalau masih belum bisa, kalian langsung googling sendiri ya karena fokus kita hari ini praktikum konfigurasi nginx bukan bahas troubleshoot.
2. Setup HTTPS dengan OpenSSL
Nah, pasti saat kalian sedang membuka website suka melihat http dan https. Sudah tau perbedaanya belum? Umumnya sih perbedaanya terletak di keamanannya. Ya, https lebih aman karena komunikasi antar client dan server di enkripsi. Kalau ada waktu saya akan bahas mengenai keamanannya dengan bantuan alat wireshark.
Oke lanjut! Tadi kan sudah install, sekarang waktunya konfigurasi caranya ketik perintah dibawah ini untuk membuat VirtualHost yang baru milik kalian sendiri, penjelasan dikit mengenai perintahnya;
· cd = Change Directory yang artinya berpindah folder atau direktory.
· /etc/nginx/sites-available = Direktori untuk melakukan konfigurasi nginx.
· tail = Membaca file dimulai dari baris akhir.
· default = File konfigurasi default nginx.
· do_exploit ( ganti sesuai yang kalian mau ) = File konfigurasi VirtualHost yang baru.
Ketik perintah dibawah ini untuk mengonfigurasi file konfigurasi VirtualHost kita yang baru,
root@server:/etc/nginx/sites-available# nano <nama_file>
Rubah menjadi seperti gambar dibawah ini, saya jelasin sedikit yang mengenai konfigurasinya;
· listen 443 ssl = Membuka port 443 menjadi listen(mendengarkan paket yang akan datang)
· server_name _ = Karena kita tidak isi apa-apa maka akan berdampak ke semua situs yang ada. Maksudnya gimana? Nanti kalau sudah disertai konfigurasi DNS kalian akan paham, tenang aja.
· ssl_certificate = lokasi sertifikat yang digunakan, biasanya akan kita berikan kepada klien lalu mereka install di mesinnya.
· ssl_certificate_key = lokasi kunci sertifikat yang digunakan dan dipegang oleh server.
· root /var/www/html = Halaman rumah situs, jadi ketika kita membuka situs akan langsung diarahkan ke folder tersebut.
· index index.html = ini adalah halaman yang ditampilkan langsung saat membuka situs.
CTRL+X+Y+ENTER untuk keluar dan save.
Jika sudah kita lanjut untuk membuat sertifikat menggunakan OpenSSL, langsung aja ya ketik perintah dibawah ini, itu perintah openssl emang panjang jadi sabar ya 😊;
root@server:~/certificate# openssl req -x509 -keyout CA.key -out CA.crt -nodes -days 365
Nah sudah ya, pastikan dulu sama yang ada di gambar biar ga salah. Sekarang lanjut kebagian cara mengaktifkan file VirtualHost yang sudah kita buat tadi. Balik dulu ke direktori nginx. Saya jelasin sedikit lagi ya;
· ../ = Salah satu perintah yang mengartikan parent directori/folder sebelumnya.
· ln -s = Symbolic link digunakan untuk membuat link antara 1 file ke file lainnya. Jadi hasilnya gimana? Salah satu file akan mengikuti isi file dari file lainnya.
root@server:~/certificate# cd /etc/nginx/sites-available
Nah sudah ya, sekarang kita masuk tahap terakhir yaitu melakukan restart karena kita baru saja mengonfigurasi banyak hal. Ketik perintah dibawah ini;
Sekarang waktunya verifikasi! Ketik url ini di web browser kalian, oh iya pastikan kalian sudah dapat mengoneksikan mesin server kalian ke mesin kliennya ya!
https://<IP-NUMBER-SERVER>/
Diatas contoh hasilnya jika menggunakan Microsoft Edge, kalau tidak muncul dicek lagi tahapan konfigurasinya.
Nah, gimana? sudah selesai konfigurasinya kan, kalau kalian menemui error yang belum dapat teratasi juga, silahkan langsung saja email. Sebenarnya tutorial diatas masih belum selesai sampai ke tahap redirect http ke https, tapi selanjutnya tetap akan kita bahas di bagian redirect.