Internet, Linux

Memasang Sertifikat SSL di Localhost pada Nginx dan Ubuntu 22.04

ssl

Ilustrasi SSL. Courtesy of Pixabay

Teknologi internet yang semakin maju membuat kita harus menjaga data yang digunakan di dalam kegiatan berinternet ria. Teknologi yang digunakan untuk menjaga data pada saat ini adalah SSL (Secure Socket Layer). SSL adalah sebuah protokol yang digunakan untuk memastikan privasi, otentikasi dan integritas data pada komunikasi internet. Untuk memasang SSL diperlukan sebuah sertifikat SSL, yang membuat tautan terenkripsi antara sebuah web server dengan web browser.

Sertifikat SSL didapat atau dibeli dari sebuah Certificate Authority (biasa disingkat CA). Biaya untuk mendapatkan sertifikat SSL ini bermacam-macam, yang disesuaikan dengan kebutuhan. Sertifikat ini dapat digunakan dalam jangka waktu tertentu, dan Anda harus memperbarui sertifikat ini bila telah kadaluwarsa.

Sertifikat SSL dapat dipasang di sebuah server atau sesuai dengan judul pos ini, bisa juga dipasang di web server komputer kita atau localhost. Aplikasi yang digunakan untuk hal ini adalah Mkcert.

Kebutuhan

  • Komputer dengan sistem operasi Ubuntu 22.04
  • Webserver Nginx
  • Proyek website di direktori /var/www/nama_website dengan nama domain nama_website.web (silakan diganti sesuai dengan kebutuhan)
  • Koneksi ke internet

Proses Pemasangan

Pertama, pastikan sistem menggunakan update terbaru:

sudo apt update -y

Dan sebelum memasang Mkcert, terdapat 2 aplikasi yang harus terpasang:

sudo apt install wget libnss3-tools

Setelah terpasang keduanya, unduh berkas binari Mkcert dengan menggunakan perintah:

wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.4/mkcert-v1.4.4-linux-amd64

Setelah proses pengunduhan selesai, pindahkan file ke system path:

sudo mv mkcert-v1.4.4-linux-amd64 /usr/bin/mkcert

Lalu ubah permission agar aplikasi dapat dieksekusi:

sudo chmod +x /usr/bin/mkcert

Membuat Sertifikat CA Lokal

Untuk membuat sebuah sertifikat CA lokal digunakan perintah sebagai berikut:

mkcert -install

Sebuah output akan muncul di layar monitor Anda:

Created a new local CA 💥
The local CA is now installed in the system trust store! ⚡️
The local CA is now installed in the Firefox and/or Chrome/Chromium trust store (requires browser restart)! 🦊

Anda dapat memeriksa path sertifikat CA yang telah dibuat dengan perintah:

mkcert -CAROOT

Hasilnya dapat dilihat pada output:

/home/nama_mesin/.local/share/mkcert

Di mana direktori /home/nama_mesin adalah nama direktori home Anda.

Membuat Sertifikat untuk Website Lokal

Pembuatan file sertifikat dan kuncinya di komputer Anda dapat dilakukan dengan perintah:

mkcert nama_website.web localhost 127.0.0.1 ::1

Dan akan muncul output pada layar komputer Anda:

Created a new certificate valid for the following names 📜
 - "nama_website.web"
 - "localhost"
 - "127.0.0.1"
 - "::1"

The certificate is at "./nama_website.web+3.pem" and the key at "./nama_website.web+3-key.pem" ✅

It will expire on 2 September 2026 🗓

Selanjutnya untuk mengatur supaya web server Nginx dapat menggunakan sertifikat yang telah dihasilkan dengan menyalin file-file sertifikat ke direktori /etc/ssl, dengan perintah:

sudo cp nama_website.web+3* /etc/ssl/

Dengan asumsi permission pada nama_website.web telah diatur ke www-data, edit file /etc/nginx/sites_available/nama_website.conf

sudo vi /etc/nginx/sites_available/nama_website.conf

Ubah perintah-perintah agar sesuai dengan baris-baris berikut:

server {
     listen 80;
     #listen [::]:80 default ipv6only=on;
     listen [::]:80;
 
     root /var/www/nama_website/public;
 }
 
server {
     listen *:443 ssl;
 
     root /var/www/nama_website/public;
 
     server_name nama_website.web;
     ssl_certificate /etc/ssl/nama_website.web+3.pem;
     ssl_certificate_key /etc/ssl/nama_website.web+3-key.pem;

... dst

Keluar dari Vim dan pastikan bahwa konfigurasi Nginx yang dibuat tidak mengandung error dengan perintah:

sudo nginx -t

Dan bila semuanya berjalan lancar, Anda akan mendapatkan output sebagai berikut:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Jangan lupa mengedit file /etc/hosts untuk mengikat nama website anda ke sistem alamat IP komputer Anda dengan perintah:

127.0.0.1 nama_website.web

Sekarang buka web browser Anda dengan mengetikkan URL: https://nama_website.web, dan Anda akan melihat domain diamankan oleh Mkcert, dan bila Anda mengklik tanda Lock maka akan mendapatkan seperti gambar di bawah ini:

Selamat Anda telah memasang sebuah sertifikat SSL pada website di komputer Anda. Semoga bermanfaat.

Leave a Reply