{CentOS7} {LAB 8.16} Konfigurasi HTTPS Pada Nginx

7:33:00 AM , 0 Comments

Assalamualaikum wr wb

Pada kesempatan kali ini saya akan melanjutkan lab centos yang pada saat ini masih tentang web server nginx, lebih tepatnya tentang konfigurasi HTTPS pada Nginx. 
Apasih HTTPS itu?
HTTPS (Hyper Text Transfer Protocol Secure) Umumnya sama dengan HTTP, yaitu protokol yang mengatur komunikasi antara client dan server. Pada umumnya cara komunikasi antara client dan server adalah client melakukan request ke server, kemudian server mengirimkan respon terhadap client. Respon yang dimaksud dapat berupa file HTML yang akan ditampilkan di browser ataupun data lain yang di-request oleh client

Jadi HTTPS ini bisa dibilang versi amannya HTTP, karena HTTPS ini bekerja bersama protokol SSL (Secure Socket Layer) atau Transport Layer Security (TLS) yang memungkinkan adanya Enkapsulasi dan menambahkan keamanan sebuah jaringan yang diakses pada browser.

TOPOLOGI


Konfigurasi Server Nginx

1) Langkah pertama pindah terlebih dahulu, ke directory /certs/ karena secara default sertifikat ssl yang sudah diizinkan oleh firewall adalah berada pada directory /certs/. Sebenarnya bisa anda buat sertifikat ssl dimana saja, tetapi anda harus membuka firewallnya juga, nah disitu agak ribet gan. 
cd /etc/pki/tls/certs

2) Selanjutnya buat file private key dengan menggunakan command make "namafile".key File key ini berguna sebagai sign atau tanda tangan sertifikat yang dimiliki oleh server. Juga nantinya anda akan diminta untuk memasukan passphrase atau password. Private key kita normalnya disimpan dalam bentuk terenkripsi dengan passphrase. Setiap kali Nginx dijalankan, kita harus memasukan passphrase/passwordnya. Ini tentu lebih aman, karena private key kita selalu berada dalam bentuk yang terlindungi.
make namafile.key

3) Karena tadi saya  telah membuat file private key yang saya berinama server.key sekarang saya ingin mengecek apakah file tersebut benar terbuat atau tidak dengan menggunakan perintah ls Jika file berhasil terbuat maka output dari perintah ls akan ada file bernama server.key


4) Selanjutnya adalah mengatur key tersebut menjadi file key yang digunakan untuk sign file csr, kemudian masukkan password yang telah dimasukan sebelumnya. Pada saat kita mengatur file private keynya terlihat disana selalu diminta untuk memasukan passphrase/passwordn, ini tandanya private key benar benar dalam keadaan terlindungi. (file csr ada pada lagkah 5)
openssl rsa -in server.key -out server.key

5) Selanjutnya kita akan membuat sertifikasi csr nya dengan menggunakan perintah make server.csr 
Pada pembuatan sertifikat csr anda akan diminta mengisi data data seperty country name, provinsi, kota, dll. Data data ini nantinya akan digunakan sebagai indentitas si pemilik sertifikat tersebut.
Selanjutnya adalah mengatur key tersebut menjadi file key yang digunakan untuk sign file csr, kemudian masukkan password yang telah dimasukan sebelumnya. Pada bagian challenge password ini adalah optional anda bisa mengisi passwordnya atau anda bisa kosongkan saja lalu tekan enter, saran saya kalau hanya untuk belajar anda bisa kosongkan saja.
make "namafile".csr

6) Dikarenakan kita memiliki dua file sertifikat yaitu sertifikat.csr dan sertifikat.key maka kita harus menggabungkan keduanya dengan menggunakan perintah openssl. 
openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650
penjelasan :
x509 merupakan format public key certificates atau sertifikat yang digunakan 
-in merupakan sumber dari identitas yang nantinya akan di include kedalam sertifikatnya 
-out merupakan Sertifikat, atau hasil dari generate file 
-req -signkey merupakan file keynya. 
-days merupakan jangka waktu untuk sertifikat tersebut dalam hitungan hari
7) Berikut ini adalah  tahap tahap pengeditan/pembuatan web pada domain tertentu menjadi HTTPS. Disini saya membuat konfigurasi https nya pada file vhost.conf yang sebelumnya sudah saya buat dan saya hanya akan membuat HTTPS pada domain www.pandutama.net saja.

penjelasan :
listen 443 ssl berarti suatu domain dikonfigurasi untuk mendengarkan atau membaca service https pada port 443
ssl_protocol TLSv1 TLSv1.1 TLSv1.2 merupakan standarisasi protocol yang digunakan oleh HTTPS yaitu ssl dan juga TLS (Transport Layer Security)
ssl_certificate merupakan letak dari file sertifikat .crt yang telah dibuat dan dikonfigurasi
ssl_certificate_key merupakan letak key dari sertifikat ssl tersebut
8) Selanjutnya restart service nginx agar konfigurasi diatas berjalan dengan baik.
systemctl restart nginx

9) Setalah itu, masukan service https kedalam firewall agar dapat diakses oleh client
firewall-cmd --add-service=https --permanent
firewall-cmd --reload 

Verifikasi Client

1) Lakukan pengujian pada client dengan mengakases domain web anda tetapi memakai protokol https contohnya https://www.pandutama.net
Mengapa pada saat mengakses web server https nya muncul tulisan "Your connection is not private"? Itu dikarenakan sertifikat https yang anda buat tidaklah berbayar/tidak dibuat dari perusahan pelayanan https melainkan sertifikat yang anda buat sendiri(lokal). mau yang beda? akses aja www.google.com


2) Maka akan muncul tampilan halaman web yang sudah anda edit pada index.html


Alhamdulilah semoga bermanfaat
Mohon maaf apabila terdapat banyak kesalahan
Wassalamualaikum wr wb

Pandutama

Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.

0 comments: