Sunday, May 14, 2017

[CentOS 7] LAB 8.16 Konfigurasi SSL for HTTPS (Nginx Web Server)

Assalamuallaikum 
WarahmatullahiWabarakatuh.

السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ

Selamat siang ane ucapkan, ketemu lagi dengan ane di blog Warung Informasi. Pada siang hari ini ane mau sharing mengenai konfigurasi SSL for HTTPS, sebelumnya ane pernah sharing konfigurasi serupa seperti ini, hanya saja pada konfigurasi yang pernah ane sharing sebelumnya disini menggunakan Apache Web Server, sedangkan yang mau ane sharing pada kesempatan kali ini menggunakan Nginx Web Server.


Sebelumnya ane mau ngejelasin sedikit mengenai HTTPS dan SSL. Jadi yang membuat HTTPS menjadi secure adalah karena pada domain web server yang kita buat sudah diamankan menggunakan menggunakan protokol SSL (Secure Socket Layer) atau Transport Layer Security (TLS) yang memungkinkan adanya Enkapsulasi dan menambahkan keamanan sebuah jaringan yang diakses pada browser. Lalu apa itu SSL ? Jadi SSL ini merupakan singkatan dari Secure Socket Layer. Dengan menggunakan SSL, web server yang kita buat membuat sambungan aman dengan browser pengguna. SSL ini berbentuk sertifikat, jadi sebelum kita membuat web server kita menjadi sambungan yang aman untuk dia akses menggunakan browser client, kita harus mengaktifkan terlebih dahulu protokol SSL nya. Untuk mengaktifkan protokol SSL di web server, nantinya kita akan disuguhi beberapa pertanyaan yang harus diisi untuk membangun identitas kita.

Secara default port untuk HTTPS ini adalah 443.

Untuk topologi yang ane gunakan kurang lebih sebagai berikut


Konfigurasi Server

1.) Pindah ke directory /etc/pki/tls/certs/ terlebih dahulu. Karena di directory tersebut kita akan membuat SSL Certificate nya. Untuk berpindah directory bisa menjalankan command
cd /etc/pki/tls/certs/


2.) Setelah itu buat file .key nya, file key ini nanti nya akan digunakan sebagai key untuk file .crt nya. Untuk membuat file .key bisa menjalankan command
make "namafile".key 

Kemudian akan diminta untuk memasukkan password, masukkan password sesui keinginan yang tentunya mudah diingat. Saran ane sih masukkin password root aja hehe.


3.) Kemudian konfigurasi RSA terhadap file key yang sudah dibuat dengan menggunakan openssl. RSA ini merupakan sebuah algoritma pada enkripsi public key. RSA ini merupakan algoritma pertama yang cocok untuk digital signature seperti halnya ekripsi. Untuk melakukan konfigurasi rsa menggunakan openssl bisa menjalankan command
openssl rsa -in server.key -out server.key


4.) Setelah itu buat file .csr nya, untuk membuat csr ini nanti kita diminta untuk mengisi identitas web server kita. Untuk membuat file .csr nya menjalankan command
make "namafile".csr

Seperti apa yang anekatakan diatas, kita diminta untuk mengisi identitas web server kita. Kemudian isi identitas untuk SSL nya. 
Keterangan : 
  • Country Name : Negara (ID/Indonesia) 
  • Province Name : Provinsi (Jawa Barat) 
  • City : Kota (Bekasi) Organization Name : 
  • Organisasi/Nama perusahaan (SMKN 1 Kota Bekasi) 
  • Organization Unit : Unit organiasi di perusahaan (TKJ) 
  • Common Name : Domain/Hostname dari server (www.anandarizky.co.id) 
  • E -mail Address : E-mail yang digunakan (rizky@anandarizky.co.id) 

Kemudian diminta memasukkan password dan optional company name, untuk SSL asli yang secure kita harus mengisi ini. Untuk bagian ini boleh diisi dan boleh tidak.


5.) Selanjutnya buat file .crt nya, fiel .crt ini merupakan gabungan dari file .key dan file .csr yang sebelumnya sudah dibuat. Untuk membut file .crt nya bisa menjalankan command
openssl x509 -in "namafile".csr -out "namafile".crt -req -signkey "namafile".key -days 3650

Keterangan :
  • x509 : Supaya dapat digunakan untuk menampilkan informasi sertifikat, mengonversi sertifikat ke berbagai bentuk, menandatangani permintaan sertifikat seperti "mini CA" atau mengedit pengaturan kepercayaan sertifikat. 
  • -in server.csr : Input data dari server.csr yang berupa identitas yang dibuat sebelumnya 
  • -out server.crt : Output data nya akan menjadi server.crt 
  • -req -signkey server.key : Request dari server.key
  • -days 3650 : Masa berlaku dari sertifikat keynya 

Kemudian akan muncul seperti output di atas. Sedikit informasi, disini sertifikat keynya sudah jadi, dan yang diterima browsernya nya file .crt. File .crt ini yang dikirim ke penyedia layanan SSL supaya key nya menjadi valid, kemudian di kirim kembali ke kita supaya dapat di generate ke server kita supaya dapat diterima dan dikenali oleh browser.


6.) Kemudian konfigurasi HTTPS untuk salah satu domain, karena sebelumnya ane pernah membuat Virtual Host dengan menggunakan dua nama domain. Maka ane menambahkan konfigurasi HTTPS pada file Virtual Hostnya. Untuk membuka file Virtual Host nya bisa menjalankan command 
nano /etc/nginx/conf.d/vhost.conf


7.) Kemudian tambahkan script seperti yang sudah di blok berwarna biru.


Keterangan :
  • listen 443 ssl : Domain www.anandarizky.co.id membaca file menggunakan HTTPS pada port 443
  • ssl_protocol TLSv1 TLSv1.1 TLSv1.2 : Merupakan standari protokol yang digunakan oleh HTTPS yaitu ssl dan TLS (Transport Layer Security) 
  • ssl_certificate : Merupakan letak dari file .crt yang telah dibuat sebelumnya
  • ssl_certificate_key : Merupakan letak file .key untuk sertifikat ssl nya


8.) Supaya konfigurasi berjalan dengan baik, kita perlu merestart nginx nya. Untuk me restart nginx bisa menjalankan command
systemctl restart nginx


9.) Kemudian tambahkan service https kedalam firewall, supaya client dapat mengaksesnya
firewall-cmd --add-service=https --permanent
firewall-cmd --reload 

Keterangan :
  • firewall-cmd : Perintah untuk masuk ke settingan firewall 
  • firewall --add-service=https : Perintah untuk menambahkan service https supaya dapat melewati firewall
  • firewall --permanent : Perintah untuk menambahkan sesuatu secara permanent didalam firewall firewall
  • firewall-cmd --reload : Untuk me reload / restart firewall

Verifikasi Client

1.) Buka web browser pada client dengan mengetikkan nama domain yang diawali dengan https://. Maka akan muncul peringatan connection is not private. Mengapa demikina ? Itu karena file SSL yang kita buat hanya bersifat lokal. 
Untuk melanjutkan mengakses web server, klik Advanced > Proceed to "namadomain" (unsafe)




2.) Kemudian barulah muncul isi dari index.html yang dimiliki domain www.anandarizky.co.id


Mungkin hanya sekian yang dapat ane sharing, mohon maaf bila banyak kesalahan dan kekurangan baik dari segi kata dan penulisan.
Terima Kasih. Semoga Bermanfaat. 

Wassalamuallaikum Warahmatullahi Wabarakatuh.

 وَ السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ

0 komentar:

Post a Comment