Konfigurasi Nginx HTTPS SSL Dengan OpenSSL di Server Linux | UNIX LINUX EXPLORE
Edit

Konfigurasi Nginx HTTPS SSL Dengan OpenSSL di Server Linux

2024/08/15
Artikel ini sebagai lanjutan dari artikel sebelumnya yang menjelaskan proses instalasi dan konfigurasi Nginx di sistem Linux. Pada artikel ini materinya akan kita perdalam lagi yaitu dengan menambahkan sertifikat SSL pada Ngix. Sertifikat SSL ini nantinya akan menjaga dan melindungi situs web anda dari serangan hacker atau orang yang tak bertanggung jawab.

SSL adalah kepanjangan dari Secure Sockets Layer, yaitu protokol jaringan untuk sistem keamanan yang menciptakan koneksi terenkripsi antara server web dan browser web. Sertifikat SSL adalah sertifikat digital yang akan mengautentikasi situs web seperti Nginx dan Apache. Dengan sertifikat SSL memungkinkan Anda menggunakan koneksi terenkripsi

Bagi Perusahaan atau organisasi sangat disarankan menambahkan sertifikat SSL ke situs web mereka. Hal ini bertujuan untuk melindungi transaksi online dan memastikan kerahasiaan dan keamanan data klien atau data anggota organisasi

Dengan ditambahkannya sertifikat SSL pada situs web, akan menjamin keamanan koneksi Internet dan tidak mengizinkan penyerang membaca atau mengubah informasi yang dikirimkan antara dua sistem. Sebagai tanda situs web yang menggunakan SSL, terlihat ikon gembok muncul disebelah kanan atas dari alamat web yang anda kunjungi, maka situs web ini dilindungi menggunakan sertifikat SSL.

Sejak awal diciptakan, sekitar 25 tahun yang lalu, protokol SSL telah berevolusi dengan sangat cepat dan tersedia dalam beberapa versi. Saat menggunakan masing-masing versi ini, masalah keamanan terjadi di beberapa titik. Lalu ada versi protokol yang diperbarui dan diganti namanya dengan TLS (Transport Layer Security), yang masih digunakan sampai sekarang. Namun singkatan SSL telah mengakar, sehingga protokol versi baru masih sering disebut dengan nama lama.





1. Cara kerja sertifikat SSL

Penggunaan sertifikat SSL menjamin data yang dikirimkan antara pengguna dan website atau antara server dan client tidak dapat dibaca oleh pihak atau sistem ketiga. Setiap data yang dikirimkan dengan sertifikat SSL akan dienkripsi sehingga mencegah penyerang membacanya saat mengirimkan melalui koneksi terenkripsi. Data ini mencakup informasi yang berpotensi sensitif seperti nama, alamat, nomor kartu kredit, dan data keuangan lainnya.

Proses atau cara kerja sertifikat SSL sebagai berikut:
  1. Browser atau server mencoba terhubung ke situs web (web server) yang dilindungi SSL.
  2. Browser atau server meminta identifikasi dari server web.
  3. Sebagai tanggapan, server web mengirimkan salinan sertifikat SSL-nya ke browser atau server.
  4. Browser atau server memeriksa apakah sertifikat SSL ini tepercaya. Jika demikian, ia melaporkan hal ini ke server web.
  5. Server web kemudian mengembalikan konfirmasi yang ditandatangani secara digital dan memulai sesi yang dienkripsi menggunakan SSL.
  6. Data terenkripsi dibagikan antara browser atau server dan server web.
Proses ini terkadang disebut sebagai konfirmasi koneksi SSL. Meski proses ini sering dikatakan memakan waktu lama, namun kenyataannya hanya membutuhkan waktu sekian milidetik.

Jika website dilindungi oleh sertifikat SSL, singkatan HTTPS (Secure Hypertext Transfer Protocol) muncul di alamat web. Untuk situs tanpa sertifikat SSL, singkatan HTTP ditampilkan, tanpa S yang sesuai dengan Aman. Ikon kunci juga akan ditampilkan di bilah alamat alamat web. Hal ini menandakan keamanan dan memberikan kepercayaan kepada pengunjung website.

Untuk melihat informasi tentang sertifikat SSL, klik ikon gembok yang terletak di panel browser. Data yang disertakan dalam sertifikat SSL biasanya meliputi:
  1. Nama domain tempat sertifikat diterbitkan.
  2. Orang, organisasi, atau perangkat yang sertifikatnya diterbitkan.
  3. Otoritas sertifikat yang menerbitkan sertifikat.
  4. Tanda tangan digital dari otoritas sertifikat.
  5. Subdomain terkait.
  6. Tanggal penerbitan sertifikat.
  7. Masa berlaku sertifikat.
  8. Kunci publik (kunci pribadi tidak diungkapkan).



2. Setup Nginx HTTPS dengan OpenSSL

Pada artikel ini, kita anggap saja web server Nginx anda telah berjalan dengan normal di server Ubuntu. Jadi, kami tak akan membahas cara install Nginx lagi. Kita langsung saja ke topik utama kita yaitu memasang sertifikat SSL pada Nginx. Pada bagian ini kita menggunakan OpenSSL untuk melayani pembuatan sertifikat SSL. Sebelum anda menggunakan sertifikat SSL pada Nginx, anda install terlebih dahulu aplikasi OpenSSL. Beikut ini cara install OpenSSL di Ubuntu.

Install openssl
root@runtu:~# apt install openssl -y
Setelah anda selesai menginstall OpenSSL, buat direktori SSL yang akan kita gunakan sebagai tempat untuk menyimpan file SSL.

Install openssl
root@runtu:~# mkdir -p /etc/nginx/ssl
root@runtu:~# cd /etc/nginx/ssl
root@runtu:/etc/nginx/ssl#
Kemudian lanjutkan dengan membuat sertifikat SSL dengan perintah openssl.

/etc/nginx/ssl
root@runtu:/etc/nginx/ssl# openssl req -nodes -newkey rsa:2048 -keyout /etc/nginx/ssl/private.key -out /etc/nginx/ssl/request.csr
Perintah di atas akan menghasilkan file dengan format *.csr. File tersebut akan kita gunakan untuk membuat file dan kunci sertifikat.

/etc/nginx/ssl
root@runtu:/etc/nginx/ssl# openssl x509 -in /etc/nginx/ssl/request.csr -out /etc/nginx/ssl/certificate.crt -req -signkey /etc/nginx/ssl/private.key -days 365
Saat ini, anda telah berhasil membuat semua sertifikat yang diperlukan untuk Nginx. Sekarang, edit file konfigurasi host virtual Nginx dengan cara buka file default yang ada di folder "/etc/nginx/sites-available". Pada file default tersebut anda masukkan skrip di bawah ini.

/etc/nginx/sites-available
root@runtu:/etc/nginx/ssl# cd /etc/nginx/sites-available
root@runtu:/etc/nginx/sites-available# nano default
server {
        listen 80;
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        server_name datainchi.com;

        ssl_certificate /etc/nginx/ssl/certificate.crt;
        ssl_certificate_key /etc/nginx/ssl/private.key;

        ssl_protocols TLSv1.2 TLSv1.1 TLSv1;

        root /var/www/html;

        index index.html index.nginx-debian.html;
}
Langkah berikutnya adalah restart Nginx dengan perintah berikut ini.

Restart Nginx
root@runtu:/etc/nginx/sites-available# service nginx restart
Saat ini, anda telah memiliki web server Nginx dengan sertifikat SSL. Untuk membuktikannya anda buka web browser Google chrome, dan ketikkan "https://192.168.7.3/".

Setelah anda membaca artikel ini, berarti anda telah berhasil memasang sertifikat SSL di server Nginx. Anda juga telah memperoleh sertifikat SSL untuk domain situs web anda, dan menjadikan situs web anda lebih aman karena terlindungi oleh sertifikat SSL. Untuk panduan tambahan tentang penggunaan sertifikat OpenSSL, dokumentasi resmi berfungsi sebagai sumber yang bagus untuk anda pelajari.