Instalasi SSL (Self-Signed) di Apache

Saat pertama kali belajar web server, saya penasaran bagaimana sebuah website bisa menampilkan ikon gembok (🔒) di browser. Setelah mencari tahu, ternyata salah satu penyebabnya adalah karena website tersebut menggunakan SSL (Secure Sockets Layer) atau lebih tepatnya sertifikat TLS.

Karena masih dalam tahap belajar dan belum memiliki domain publik, saya memutuskan menggunakan SSL Self-Signed. Sertifikat jenis ini dibuat sendiri oleh server sehingga cocok digunakan untuk kebutuhan pembelajaran. Meskipun browser akan menampilkan peringatan bahwa sertifikat tidak berasal dari Certificate Authority (CA) resmi, SSL Self-Signed tetap mengenkripsi komunikasi antara browser dan server.

Pada artikel ini saya akan menjelaskan langkah demi langkah proses instalasi SSL Self-Signed pada Apache beserta penjelasan setiap perintah yang digunakan.

Apa itu SSL Self-Signed?

SSL Self-Signed adalah sertifikat SSL yang dibuat dan ditandatangani oleh server itu sendiri, bukan oleh lembaga penerbit sertifikat resmi seperti Let’s Encrypt, DigiCert, ataupun Sectigo.

Kelebihan SSL Self-Signed:

  • Gratis.
  • Mudah dibuat.
  • Cocok untuk lab atau server internal.
  • Dapat digunakan untuk belajar konfigurasi HTTPS.

Kekurangannya:

  • Browser akan menganggap sertifikat tidak terpercaya.
  • Tidak cocok digunakan pada website produksi yang diakses oleh banyak pengguna.

Sebelum memulai, pastikan server sudah memenuhi beberapa syarat berikut:

  • Rocky Linux 9
  • Apache HTTP Server sudah terpasang
  • Memiliki akses sebagai root atau pengguna yang dapat menjalankan sudo
  • Firewall telah mengizinkan akses HTTP dan HTTPS

Persiapan

Untuk memastikan Apache sudah terinstal, jalankan:

httpd -v

Perintah tersebut digunakan untuk melihat versi Apache yang terpasang.

Contoh hasilnya:

Server version: Apache/2.4.xx

Selanjutnya pastikan service Apache berjalan.

systemctl status httpd

Perintah ini digunakan untuk mengecek apakah layanan Apache sedang aktif.

Jika belum berjalan, aktifkan menggunakan:

sudo systemctl enable --now httpd

Penjelasan:

  • enable membuat Apache otomatis aktif ketika server dinyalakan.
  • --now langsung menjalankan servicenya tanpa perlu reboot.

Menginstal SSL Apache

Apache memerlukan modul SSL agar mampu melayani koneksi HTTPS.

Install terlebih dahulu paketnya.

sudo dnf install mod_ssl -y

Penjelasan:

  • dnf install digunakan untuk menginstal paket.
  • mod_ssl merupakan modul SSL milik Apache.
  • -y menjawab “Yes” secara otomatis ketika proses instalasi meminta konfirmasi.

Setelah selesai, Apache sudah memiliki kemampuan untuk menggunakan HTTPS.

Membuat Folder Penyimpanan Sertifikat

Agar lebih rapih, buat direktori khusus untuk menyimpan sertifikat.

sudo mkdir -p /etc/pki/tls/private

Penjelasan:

  • mkdir membuat direktori baru.
  • -p membuat folder apabila belum ada sekaligus menghindari error jika direktori sudah tersedia.

Membuat Private Key

Private Key merupakan kunci utama yang akan digunakan saat proses enkripsi.

Jalankan:

sudo openssl genrsa -out /etc/pki/tls/private/server.key 2048

Penjelasan:

  • openssl adalah tools untuk mengelola sertifikat SSL.
  • genrsa membuat RSA Private Key.
  • -out menentukan lokasi penyimpanan file.
  • 2048 adalah panjang kunci yang umum digunakan.

Hasilnya akan terbentuk file:

server.key

File ini harus dijaga kerahasiaannya dan tidak boleh dibagikan kepada siapa pun.

Membuat Sertfikat Self-Signed

Setelah memiliki Private Key, langkah berikutnya adalah membuat sertifikat.

sudo openssl req -new -x509 -key /etc/pki/tls/private/server.key \
-out /etc/pki/tls/certs/server.crt -days 365

Penjelasan setiap parameter:

  • req membuat Certificate Request.
  • -new membuat request baru.
  • -x509 langsung menghasilkan sertifikat Self-Signed.
  • -key menggunakan private key yang telah dibuat.
  • -out menentukan lokasi penyimpanan sertifikat.
  • -days 365 membuat sertifikat berlaku selama satu tahun.

Selanjutnya sistem akan meminta beberapa informasi seperti:

Country Name
State
City
Organization
Organizational Unit
Common Name
Email Address

Bagian yang paling penting adalah Common Name.

Isi dengan:

  • alamat IP server, atau
  • nama domain jika sudah memiliki domain.

Contoh:

Common Name:
192.168.8.250

Mengonfigurasi Apache Menggunakan SSL

Edit file konfigurasi SSL Apache.

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

Cari bagian berikut:

SSLCertificateFile

Ubah menjadi:

SSLCertificateFile /etc/pki/tls/certs/server.crt

Kemudian cari:

SSLCertificateKeyFile

Ubah menjadi:

SSLCertificateKeyFile /etc/pki/tls/private/server.key

Konfigurasi tersebut memberitahu Apache lokasi file sertifikat dan Private Key yang akan digunakan.

Mengecek Konfigurasi Apache

Sebelum melakukan restart, lakukan pengecekan konfigurasi.

sudo apachectl configtest

Apabila konfigurasi benar, hasilnya akan seperti berikut.

Syntax OK

Jika muncul error, periksa kembali lokasi file atau penulisan konfigurasi.

Restart Apache

Setelah konfigurasi selesai, restart Apache.

sudo systemctl restart httpd

Perintah ini digunakan untuk menerapkan seluruh konfigurasi SSL yang baru dibuat.

Kemudian pastikan servicenya kembali berjalan.

sudo systemctl status httpd

Membuka Firewall HTTPS

Agar port HTTPS dapat diakses dari jaringan, buka layanan HTTPS pada firewall.

sudo firewall-cmd --permanent --add-service=https

Penjelasan:

  • menambahkan layanan HTTPS secara permanen.

Selanjutnya lakukan reload.

sudo firewall-cmd --reload

Reload digunakan agar perubahan firewall langsung diterapkan tanpa perlu melakukan reboot server.

Untuk memastikan layanan HTTPS telah aktif:

sudo firewall-cmd --list-services

Jika berhasil akan muncul:

http http

Pengujian

Sekarang buka browser dan akses server menggunakan alamat berikut.

https://IP-Server

Contoh:

https://192.168.15.250

Kemungkinan browser akan menampilkan pesan seperti:

Your connection is not private

Hal tersebut normal karena sertifikat dibuat sendiri (Self-Signed) sehingga belum dipercaya oleh browser.

Pilih menu:

Advanced
Proceed to Website

Setelah itu website Apache akan terbuka menggunakan HTTPS.

Apabila ikon gembok belum muncul sempurna, browser biasanya akan memberikan informasi bahwa sertifikat belum dipercaya. Namun komunikasi antara browser dan server tetap sudah menggunakan enkripsi.

Mengecek Sertifikat yang Digunakan

Untuk memastikan Apache benar-benar menggunakan sertifikat tersebut, jalankan:

openssl x509 -in /etc/pki/tls/certs/server.crt -text -noout

Perintah ini digunakan untuk menampilkan informasi lengkap mengenai sertifikat, seperti:

  • Masa berlaku sertifikat.
  • Algoritma enkripsi.
  • Common Name.
  • Tanggal pembuatan.
  • Tanggal kedaluwarsa.
  • Fingerprint sertifikat.

Struktur File SSL

Setelah proses selesai, biasanya struktur file menjadi seperti berikut.

/etc/pki/tls/
├── certs/
│   └── server.crt
└── private/
    └── server.key
  • server.crt adalah sertifikat publik yang akan dikirimkan kepada browser saat proses koneksi HTTPS.
  • server.key adalah private key yang digunakan server untuk proses enkripsi dan harus dijaga kerahasiaannya.

Menurut aku, praktik seperti ini sangat cocok untuk belajar sebelum menggunakan sertifikat resmi seperti Let’s Encrypt. Selain menambah pengalaman, aku juga jadi lebih paham bahwa mengaktifkan HTTPS ternyata tidak sesulit yang saya bayangkan.

Semoga artikel ini bisa membantu teman-teman yang sedang belajar Apache dan ingin mencoba mengamankan web server mereka dengan SSL Self-Signed.

One thought on “Instalasi SSL (Self-Signed) di Apache”

Leave a Reply

Your email address will not be published. Required fields are marked *