Ada banyak platform yang dapat diinstal SSL. Contohnya adalah web server. Di Linux, salah satu aplikasi/layanan web server yang populer adalah Apache. Pada tulisan ini, kita coba untuk belajar gimana sih cara instal self-signed SSL di Apache web server.
Instalasi Apache & OpenSSL
Untuk pengujian kali ini menggunakan container Debian “polosan” yang belum diinstal Apache. Kita bisa menginstal Apache di komputer lokal kita atau menggunakan container seperti pada Proxmox VE atau Docker.
Selain Apache, pada pengujian kali ini kita juga memerlukan tool/layanan OpenSSL untuk generate file-file yang berkaitan dengan SSL seperti private key (.key
) dan SSL-nya (.crt
)
Instalasi Apache & OpenSSL bisa dilakukan dengan menggunakan perintah:
apt update && apt install apache2 openssl -y
Generate File Self-Signed SSL
Kita buat direktori untuk menyimpan file-file SSL. Misalnya kita akan buat direktori baru di /etc/apache2/ssl
.
mkdir /etc/apache2/ssl
cd /etc/apache2/ssl
Selanjutnya adalah proses generate SSL dan private key menggunakan OpenSSL.
openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 \
-keyout private.key \
-out ssl.crt
Sebenarnya perintah di atas memanjang, tapi menggunakan “\” agar bisa ditulis ke bawah.
Berikut penjelasan singkat dari perintah di atas:
openssl req
: perintah untuk membuat CSR baru.
-x509
: format umum untuk SSL.
-nodes
: “no DES encryption“. Artinya adalah agar private key tidak dienkripsi dengan passphrase agar Apache bisa langsung membacanya.
-days 365
: masa berlaku SSL – 1 tahun.
-keyout
: file private key
-out
: file SSL.
Setelah menjalankan perintah ini, ada beberapa pertanyaan yang muncul seperti saat membuat CSR. Karena ini hanya testing, maka isi saja pada bagian CN (misalnya diisi dengan localhost atau alamat IP).
Konfigurasi Apache
Selanjutnya kita perlu untuk mengaktifkan fitur SSL di Apache. Secara default menggunakan port 443. Gunakan perintah berikut:
a2enmod ssl
a2ensite default-ssl
Ada juga file yang perlu diedit. Yaitu /etc/apache2/sites-available/default-ssl.conf
.
Pada file tersebut, arahkan ke file SSL dan private key yang sudah kita generate. Cari line berikut di file:
SSLCertificateFile /etc/apache2/ssl/SSL.crt
SSLCertificateKeyFile /etc/apache2/ssl/private.key
Selanjutnnya, kita restart Apache-nya dengan menggunakan perintah:
systemctl restart apache2
Cek Hasil
Buka web browser dan kunnjungi https://localhost
. Berikut ini adalah contoh pengujian yang berhasil saya lakukan:
Untuk pengujian/coba-coba pribadi selain menggunakan self-signed certificate juga bisa menggunakan SSL gratis seperti Let’sEncrypt. Tapi untuk tulisan kali ini sampai di sini dulu ya. Sampai jumpa. Bye.
Leave a Reply