Pada kesempatan kali ini, admin mau sharing mengenai konfigurasi SSL untuk HTTPS di Web Server NGINX. Sebelumnya, admin pernah memposting mengenai konfigurasi SSL untuk HTTPS di Apache web server di lab sebelumnya yaitu Lab 8.6. Materi ini adalah kelanjutan dari postingan sebelumnya mengenai Web Server Nginx. Jadi, akan ada beberapa konfigurasi dari materi sebelumnya. Untuk melakukan konfigurasi ini, kita harus melakukan installasi NGINX Web Server terlebih dahulu. Untuk konfigurasinya bisa dilihat di postingan sebelumnya yaitu Lab 8.12 Konfigurasi Web Server NGINX (CentOS).
Fungsi dari web server itu sendiri adalah untuk menerima request dari client dan meresponnya melalui browser berupa dokumen seperti teks, gambar, audio, file dan lain sebagainya yang dikirim melalui protokol HTTP (Hypertext Transmit Protocol) / HTTPS (Kypertext Transmit Protocol Secure). Terus apa bedanya web server yang melalui protokol HTTP dengan yang melalui HTTPS? Sebenarnya kalau dalam definisinya, HTTP dan HTTPS memiliki pengertian yang sama. Akan tetapi, ada perbedaan antara keduanya yaitu port default pada masing-masing protokol dan dalam hal keamanan.
HTTP memiliki port defaultnya 80 dan untuk HTTPS port defaultnya 433. Dalam hal keamanan HTTPS lebih secure dibanding HTTP karena pada web server yang kita buat melalui HTTPS sudah diamankan oleh si SSL ini. SSL itu sendiri merupakan singkatan dari Secure Socket Layer. Dengan adanya SSL ini. Web server dapat melakukan fungsi/tugasnya dengan Secure (aman) dengan cara membuat sambungan aman untuk si web server di akses di browser client. Untuk konfigurasinya, kita harus mengaktifkan protokol si SSLnya. Beriktu konfigurasinya :
HTTP memiliki port defaultnya 80 dan untuk HTTPS port defaultnya 433. Dalam hal keamanan HTTPS lebih secure dibanding HTTP karena pada web server yang kita buat melalui HTTPS sudah diamankan oleh si SSL ini. SSL itu sendiri merupakan singkatan dari Secure Socket Layer. Dengan adanya SSL ini. Web server dapat melakukan fungsi/tugasnya dengan Secure (aman) dengan cara membuat sambungan aman untuk si web server di akses di browser client. Untuk konfigurasinya, kita harus mengaktifkan protokol si SSLnya. Beriktu konfigurasinya :
Topologi
Konfigurasi Server
1) Pertama-tama, masuk ke directory /etc/pki/tls/certs/. Directory ini adalah tempat sertifikat file si SSL.
cd /etc/pki/tls/certs/
2) Masukkan perintah berikut untuk membuat sertifikat key nya. Di dalamnya, kita akan diminta untuk membuat password
make [nama file].key
3) Selanjutnya buat crt nya. Masukkan command berikut. Di dalamnya, kita diminta untuk memasukkan password yang tadi dibuat sebelumnya.
openssl rsa -in [nama file].key -out [nama file].key
4) Setelah itu, buat csr nya. Didalamnya, kita diminta untuk mengisi identitas SSL si web server, seperti negara, organisasi dan lain sebagainya. Lalu, buat password untuk si SSLnya.
make [nama file].csr
Isikan identitas untuk SSL nya :
- Country Name : ID (indoensia) [Negara]
- Province Name : Jawa Barat [Provinsi]
- City : Bekasi [Kota]
- Organization Name : SMK Negeri 1 Kota Bekasi [Organisasi]
- Organization Unit : TKJ [Unit dari Organisasi]
- Common Name : www.fiqih.net [Nama Domain]
- E-mail Address : fiqihfadillah@gmail.com [E-mail yang digunakan]
5) Kemudian, buat crt nya. Caranya, masukkan command dibawah ini. Jadi si crt ini merupakan gabungan dari file csr dan key nya yang dibuat sebelumnya. Hasilnya dari server.crt ini akan dikirim ke penyedia layanan SSL supaya key nya valid, lalu dikirim kembali ke kita agar dapat di generate ke server kita supaya dapat dikenali dan diterima oleh browser
openssl x509 -in [nama file].csr -out [nama file].crt -req -signkey [nama file].key -days 3650
Keterangan :
- x509 = merupakan format dari sertifikat yang digunakan
- -in [nama file].csr = Meng-input data dari si file .csr yang berisi identitas si server
- -out [nama file].crt = Output nya akan menjadi file .crt
- -req -signkey [nama file].key = Request dari file .key
- -days 3650 = Masa berlaku dari si sertifikat keynya
6) Pada tahap ini. kita akan tambahkan konfigurasi HTTPS untuk web server kita. Karena pada lab sebelumnya admin pernah melakukan konfigurasi virtual host di file vhost.conf . Selain itu, semua konfigurasi yang dilakukan sebelumnya berada di file tersebut. Untuk itu, admin akan tambahkan pula konfigurasi HTTPS di file tersebut. Akan tetapi, jika kalian ingin mengeditnya di file konfigurasi global nginx juga tidak masalah.
nano /etc/nginx/conf.d/[file vhost].conf
7) Tambahkan sintak seperti gambag dibawah ini, pada huruf yang diberi warna hijau muda. Dengan ini kita dapat mengakses yang http dan juga https. Di sini admin menggunakna domain www.fadillah.com
Keterangan :
- listen 443 ssl = Sintak yang digunakan agar si web server dapat menggunakan atau membaca service htps pada port 443.
- ssl_protocol TLSv1 TLSv1.1 TLSv1.2 = merupakan protocol yang digunakan oleh HTTPS yaitu ssl dan juga TLS (Transport Layer Security)
- ssl_certificate = merupakan letak dari file sertifikat .crt yang telah dibuat sebelumnya
- ssl_certificate_key = merupakan letak si key dari sertifikat ssl yang kita buat
8) Lakukan restart service nginx agar konfigurasi yang dilakukan sebelumnya berjalan (running)
systemctl restart nginx
9) Setelah itu, tambahakna service https kedalam firewall
firewall-cmd --add-service=https --permanent
firewall-cmd --reload
Keterangan :
- firewall-cmd = Command untuk masuk ke konfigurasi firewall
- --add-service=https = Command untuk menambahkan service https supaya dapat melewati firewall
- --permanent = Command untuk menambahkan atau men-setting sesuatu secara permanen di dalam firewall.
Optional
10) Pastikan si web server sudah memiliki konten web (halaman web). Jika belum, edit atau tambahkan sintak html di file yang berisi konten web. Disini, isi konten web admin terleta di file index.html di directory /usr/share/nginx/ fadillah
11) Edit atau tambahkan sintak html
Verifikasi Pada Client
12) Setting DNS Server pada client dengan mengarahkannya ke IP address si server. Lalu, lakukan verifikasi akses melalui web browser, yang satu menggunakan HTTP dan satunya lagi menggunakan HTTPS
13) Setifikat SSL yang kita buat tidak akan dikenali oleh web browser, Itu karena, SSL yang kita buat hanya untuk local saja. Supaya si sertificate nya dapat dikenali, kita harus mengirimkan server.crt nya ke penyedia layanan SSL. Yang nantinya akan didaftarkan oleh penyedia SSL supaya dapat di kenali oleh semua web browser. Untuk melihat isi websitenya, klik "Procced to www.fadillah.com (unsafe)"
14) Verifikasi akses web server lewat http dan httpd
Cukup sekian materi[CentOS 7] Lab 8.16 Konfigurasi SSL untuk HTTPS ( NGINX Web Server ) yang dapat saya sharing
Tunggu tutorial selanjutnya
Terima kasih sudah berkunjug
Mohon maaf jika ada kekurangan dan
Semoga bermanfaat
ConversionConversion EmoticonEmoticon