Cara Membuat Sertifikat SSL Lokal yang Ditandatangani Sendiri di CentOS 8


SSL (Secure Socket Layer), dan versi yang ditingkatkan, TLS (Transport Socket Layer), adalah protokol keamanan yang digunakan untuk mengamankan lalu lintas web yang dikirim dari browser web klien ke server web.

Sertifikat SSL adalah sertifikat digital yang menciptakan saluran aman antara browser klien dan server web. Dengan demikian, data sensitif dan rahasia seperti data kartu kredit, kredensial login, dan informasi sangat pribadi lainnya dienkripsi, sehingga mencegah peretas menguping dan mencuri informasi Anda.

Apa itu Sertifikat SSL yang Ditandatangani Sendiri?

Sertifikat SSL yang ditandatangani sendiri, tidak seperti sertifikat SSL lainnya yang ditandatangani dan dipercaya oleh Otoritas Sertifikat (CA), adalah sertifikat yang ditandatangani oleh seseorang yang memilikinya.

Pembuatannya benar-benar gratis dan merupakan cara murah untuk mengenkripsi server web yang dihosting secara lokal. Namun, penggunaan sertifikat SSL yang ditandatangani sendiri sangat tidak disarankan di lingkungan produksi karena alasan berikut:

  1. Karena tidak ditandatangani oleh Otoritas Sertifikat, sertifikat SSL yang ditandatangani sendiri akan menghasilkan peringatan di browser web yang memperingatkan pengguna akan potensi risiko di masa depan jika mereka memutuskan untuk melanjutkan. Peringatan ini tidak diinginkan dan akan menghalangi pengguna mengunjungi situs web Anda, sehingga berpotensi menyebabkan penurunan lalu lintas web. Sebagai solusi atas peringatan ini, organisasi biasanya mendorong karyawannya untuk mengabaikan peringatan tersebut dan terus melanjutkan. Hal ini dapat menimbulkan kebiasaan berbahaya di kalangan pengguna yang mungkin memutuskan untuk terus mengabaikan peringatan ini di situs online lainnya, sehingga berpotensi menjadi korban situs phishing.
  2. Sertifikat yang ditandatangani sendiri memiliki tingkat keamanan yang rendah karena menerapkan teknologi sandi dan hash tingkat rendah. Oleh karena itu, tingkat keamanannya mungkin tidak setara dengan kebijakan keamanan standar.
  3. Selain itu, tidak ada dukungan untuk fungsi Infrastruktur Kunci Publik (PKI).

Meskipun demikian, penggunaan sertifikat SSL yang ditandatangani sendiri bukanlah ide yang buruk untuk menguji layanan dan aplikasi pada mesin lokal yang memerlukan enkripsi TLS/SSL.

Dalam panduan ini, Anda akan mempelajari cara memasang sertifikat SSL lokal yang ditandatangani sendiri di server web localhost Apache pada sistem server CentOS 8.

Prasyarat:

Sebelum memulai, pastikan Anda memiliki persyaratan dasar berikut:

  1. Sebuah contoh dari server CentOS 8.
  2. Server web Apache diinstal di server
  3. Nama host telah dikonfigurasi dan ditentukan dalam file /etc/hosts. Untuk panduan ini, kita akan menggunakan tecmint.local sebagai nama host untuk server kita.

Langkah 1: Menginstal Mod_SSL di CentOS

1. Untuk memulai, Anda perlu memverifikasi bahwa server web Apache telah diinstal dan dijalankan.

sudo systemctl status httpd

Inilah hasil yang diharapkan.

Jika server web tidak berjalan, Anda dapat memulai dan mengaktifkannya saat booting menggunakan perintah.

sudo systemctl start httpd
sudo systemctl enable httpd

Anda kemudian dapat mengonfirmasi apakah Apache sudah aktif dan berjalan.

2. Untuk mengaktifkan instalasi dan pengaturan sertifikat SSL lokal yang ditandatangani sendiri, diperlukan paket mod_ssl.

sudo dnf install mod_ssl

Setelah terinstal, Anda dapat memverifikasi instalasinya dengan menjalankan.

sudo rpm -q mod_ssl

Selain itu, pastikan paket OpenSSL telah diinstal (OpenSSL diinstal secara default di CentOS 8).

sudo rpm -q openssl 

Langkah 2: Buat Sertifikat SSL Lokal yang Ditandatangani Sendiri untuk Apache

3. Dengan server web Apache dan semua prasyarat sudah diperiksa, Anda perlu membuat direktori di mana kunci kriptografi akan disimpan.

Dalam contoh ini, kita telah membuat direktori di /etc/ssl/private.

sudo mkdir -p /etc/ssl/private

Sekarang buat kunci dan file sertifikat SSL lokal menggunakan perintah:

sudo openssl req -x509 -nodes -newkey rsa:2048 -keyout tecmint.local.key -out tecmint.local.crt

Mari kita lihat apa arti sebenarnya dari beberapa opsi dalam perintah:

  • req -x509 – Ini menunjukkan bahwa kami menggunakan Permintaan Penandatanganan Sertifikat (CSR) x509.
  • -nodes – Opsi ini memerintahkan OpenSSL untuk melewati enkripsi sertifikat SSL menggunakan frasa sandi. Idenya di sini adalah untuk memungkinkan Apache untuk dapat membaca file tanpa intervensi pengguna apa pun yang tidak mungkin dilakukan jika frasa sandi diberikan.
  • -newkey rsa:2048 – Ini menunjukkan bahwa kita ingin membuat kunci baru dan sertifikat baru secara bersamaan. Bagian rsa:2048 menyiratkan bahwa kita ingin membuat kunci RSA 2048-bit.
  • -keyout – Opsi ini menentukan tempat menyimpan file kunci pribadi yang dihasilkan saat pembuatan.
  • -out – Opsi ini menentukan tempat menempatkan sertifikat SSL yang dibuat.

Langkah 3: Instal Sertifikat SSL Lokal yang Ditandatangani Sendiri di Apache

4. Setelah membuat file sertifikat SSL, sekarang saatnya memasang sertifikat menggunakan pengaturan server web Apache. Buka dan edit file konfigurasi /etc/httpd/conf.d/ssl.conf.

sudo vi /etc/httpd/conf.d/ssl.conf

Pastikan Anda memiliki baris berikut di antara tag host virtual.

<VirtualHost *:443>
    ServerAdmin [email 
    ServerName www.tecmint.local
    ServerAlias tecmint.local
 
    DocumentRoot /var/www/html
 
    SSLEngine on
    SSLCertificateFile /etc/ssl/private/tecmint.local.crt
    SSLCertificateKeyFile /etc/ssl/private/tecmint.local.key
</VirtualHost>

Simpan dan keluar dari file. Agar perubahan dapat diterapkan, restart Apache menggunakan perintah:

sudo systemctl restart httpd

5. Agar pengguna eksternal dapat mengakses server Anda, Anda perlu membuka port 443 melalui firewall seperti yang ditunjukkan.

sudo firewall-cmd --add-port=443 --zone=public --permanent
sudo firewall-cmd --reload

Langkah 3: Menguji Sertifikat SSL Lokal yang Ditandatangani Sendiri di Apache

Setelah semua konfigurasi siap, jalankan browser Anda dan telusuri alamat server Anda menggunakan alamat IP server atau nama domain menggunakan protokol https.

Untuk menyederhanakan pengujian, Anda dapat mempertimbangkan untuk mengalihkan protokol HTTP ke HTTPS di server web Apache. Hal ini agar setiap kali Anda menelusuri domain dalam HTTP biasa, secara otomatis akan dialihkan ke protokol HTTPS.

Jadi jelajahi domain atau IP server Anda

https://domain_name/

Anda akan mendapat peringatan yang memberi tahu Anda bahwa koneksi tidak aman seperti yang ditunjukkan. Ini akan bervariasi dari satu browser ke browser lainnya. Seperti yang bisa Anda tebak, peringatan ini disebabkan oleh fakta bahwa sertifikat SSL tidak ditandatangani oleh Otoritas Sertifikat dan browser mendaftarkannya serta melaporkan bahwa sertifikat tersebut tidak dapat dipercaya.

Untuk melanjutkan ke situs web Anda, klik tab ‘Lanjutan’ seperti yang ditunjukkan di atas:

Selanjutnya, tambahkan pengecualian ke browser.

Terakhir, muat ulang browser Anda dan amati bahwa Anda sekarang dapat mengakses server, meskipun demikian, akan ada peringatan di bilah URL bahwa situs tersebut tidak sepenuhnya aman karena alasan yang sama seperti sertifikat SSL ditandatangani sendiri dan tidak ditandatangani oleh. Otoritas Sertifikat.

Kami berharap Anda sekarang dapat melanjutkan dan membuat serta memasang sertifikat SSL yang ditandatangani sendiri di server web localhost Apache di CentOS 8.