Skip to content

Apache2 TLS/SSL (HTTPS) dan Apache2 Authentication

Ada dua alasan utama mengapa perlu melakukan Apache2 TLS/SSL (HTTPS) dan Apache2 Authentication: untuk mengamankan data yang dikirim dan untuk mengontrol siapa yang bisa mengakses sumber daya tertentu.

Apache2 TLS/SSL (HTTPS)

TLS/SSL (Transport Layer Security/Secure Sockets Layer) adalah protokol yang mengenkripsi data yang dikirimkan antara server (Apache2) dan klien (web browser). 🔐 Ini mengubah koneksi dari HTTP (Hypertext Transfer Protocol) menjadi HTTPS (HTTP Secure).

Mengapa Ini Penting?

Enkripsi Data: Mencegah pihak ketiga, seperti peretas, untuk mencegat dan membaca informasi sensitif yang ditransfer, seperti kredensial login, nomor kartu kredit, atau data pribadi lainnya. Tanpa enkripsi, data ini dikirim dalam bentuk teks biasa, membuatnya sangat rentan.

Integritas Data: Memastikan data yang diterima oleh klien sama persis dengan yang dikirim oleh server, tanpa adanya modifikasi di tengah jalan.

Otentikasi Server: Memverifikasi bahwa server yang dihubungi oleh klien adalah server yang sebenarnya, bukan server palsu yang mencoba meniru situs aslinya. Ini mencegah serangan phishing dan man-in-the-middle.

Intinya, HTTPS adalah standar keamanan di internet saat ini. Mayoritas browser modern akan menampilkan peringatan keamanan jika sebuah situs tidak menggunakan HTTPS, dan bahkan dapat memblokir akses ke situs tersebut.

Apache2 Authentication

Apache2 Authentication adalah proses untuk membatasi akses ke bagian tertentu dari situs web atau direktori. Ini memastikan hanya pengguna yang berwenang yang bisa melihat, mengunduh, atau memodifikasi file tertentu.

Mengapa Ini Penting?

Kontrol Akses: Memungkinkan administrator untuk menentukan siapa yang dapat mengakses sumber daya tertentu. Ini sangat penting untuk area yang berisi informasi sensitif, seperti panel admin, data pelanggan, atau konten eksklusif.

Keamanan Tambahan: Mencegah akses tidak sah oleh bot atau individu jahat yang mencoba menjelajahi direktori yang seharusnya tidak dapat diakses publik.

Pembatasan Pengguna: Digunakan untuk berbagai skenario, seperti area anggota berbayar, halaman admin internal, atau direktori khusus untuk tim pengembangan.

Secara umum, Apache2 Authentication sering kali dikombinasikan dengan HTTPS. Ini berarti tidak hanya data yang dilindungi saat dikirim (HTTPS), tetapi juga akses ke data itu sendiri dibatasi hanya untuk pengguna yang telah terverifikasi (Authentication). Keduanya bekerja bersama untuk menciptakan lapisan keamanan yang kuat.

Certificate Authority (CA)

Certificate Authority adalah sebuah entitas tepercaya yang bertanggung jawab untuk mengeluarkan, mengelola, dan menandatangani sertifikat digital. 📄 Sertifikat ini berfungsi untuk memverifikasi identitas suatu entitas, seperti website, dan merupakan fondasi dari keamanan internet modern, terutama dalam protokol TLS/SSL (HTTPS). CA bertindak sebagai pihak ketiga yang netral, menjembatani kepercayaan antara server (website) dan klien (browser).

Cara Kerja CA

Proses kerja CA melibatkan beberapa langkah utama, yang sering disebut sebagai bagian dari Public Key Infrastructure (PKI):

Pembuatan Pasangan Kunci: Pemilik website membuat sepasang kunci kriptografi: kunci publik dan kunci privat. Kunci privat dijaga kerahasiaannya di server, sementara kunci publik akan disertakan dalam sertifikat digital.

Permintaan Sertifikat: Pemilik website mengirimkan Certificate Signing Request (CSR) kepada CA. CSR ini berisi informasi identitas (nama domain, organisasi) dan kunci publik.

Verifikasi Identitas: CA memverifikasi identitas pemohon. Tingkat verifikasi ini berbeda-beda tergantung jenis sertifikat yang diminta (misalnya, Domain Validation, Organization Validation, atau Extended Validation). Proses ini memastikan bahwa pemohon benar-benar pemilik domain yang diklaim.

Penerbitan Sertifikat: Setelah verifikasi berhasil, CA akan menandatangani CSR menggunakan kunci privatnya sendiri. Tanda tangan ini menciptakan sertifikat digital yang secara efektif mengikat kunci publik dengan identitas website. Tanda tangan CA adalah hal yang membuat sertifikat dapat dipercaya.

Instalasi Sertifikat: Pemilik website menginstal sertifikat yang telah ditandatangani oleh CA di server mereka.

Verifikasi oleh Browser: Ketika pengguna mengunjungi website tersebut, browser akan menerima salinan sertifikat dari server. Browser kemudian akan melakukan verifikasi dengan memeriksa tanda tangan CA. Karena browser memiliki daftar CA tepercaya yang sudah terpasang secara bawaan (disebut trust store), ia dapat memvalidasi bahwa tanda tangan itu asli.

Koneksi Aman: Jika verifikasi berhasil, browser akan menampilkan simbol gembok 🔒, dan koneksi antara browser dan server dienkripsi menggunakan kunci publik yang ada di sertifikat. Jika verifikasi gagal (misalnya, sertifikat sudah kedaluwarsa atau ditandatangani oleh CA yang tidak dikenal), browser akan menampilkan peringatan keamanan.

Dengan cara ini, CA memastikan bahwa ketika Anda mengunjungi sebuah website dengan HTTPS, Anda terhubung ke server yang benar-benar asli dan komunikasi Anda aman.

Langkah - Langkah Praktikum

Warning

Gunakan VM FTP-Web Server sebelumnya.

Konfigurasi CA Root

Untuk membuat sertifikat ssl kita butuh yang namanya CA Root , CA Root akan melakukan penandatangan (sign) csr(sertificate request)

Membuat direktori penyimpanan CA Root

Agar lebih mudah dalam mengakses file CA, konfigurasi CA akan dilakukan dengan menggunakan user biasa.

useradmin@ftp-server:~$ mkdir ~/ca
useradmin@ftp-server:~$ cd ~/ca
useradmin@ftp-server:~/ca$

Membuat Private Key CA Root

useradmin@ftp-server:~/ca$ openssl genrsa -out rootCA.key 4096

Membuat certificate untuk CA Root

useradmin@ftp-server:~/ca$ openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 3650 -out rootCA.crt  
alt text

Membut file konfigurasi untuk client (web server)

useradmin@ftp-server:~/ca$ nano apace.lan.ext
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = apace.lan
DNS.2 = www.apace.lan

Membuat private key untuk client

useradmin@ftp-server:~/ca$ openssl genrsa -out apace.lan.key 2048

Membuat file CSR untuk Web Server

useradmin@ftp-server:~/ca$ openssl req -new -key apace.lan.key -out apace.lan.csr
alt text

Menandatangani (Sign) file csr

openssl x509 -req -in apace.lan.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out apace.lan.crt -days 365

Setting DNS Server

Sertifikat digital selalu terikat dengan domain, sehingga kita butuh DNS server untuk domain www.apace.lan

su -
apt-get update
apt-get install bind9
cd /etc/bind
nano named.conf
alt text
cp db.local db.apace  
nano db.apace
alt text

Konfigurasi Virtual Host HTTPS

nano -c /etc/apache2/sites-available/default-ssl.conf
tambahkan ServerName www.apace.lan
alt text

arahkan certificate file ke tempat kita menyimpan certificate
alt text

Aktifkan module ssl
a2enmod ssl
Mengaktifkan Virtual host
a2ensite default-ssl.conf
Restart Service apache2
service apache2 restart

Mengimport Certificate CA Root ke Web Browser

Karena CA kita belum masuk ke Trust Store maka kita harus mengimport CA kita agar certificate kita dikenali oleh browser.

Mengambil file RootCA.crt dari server menggunakan filezilla

alt text alt text

Memasukkan file RootCA.crt ke browser

Buka Chrome -> Setting -> Privacy and Security Manage certificates
alt text
alt text
alt text
alt text
alt text
alt text alt text alt text alt text

Pengujian di client

setting ip address dns server client

alt text

Pengujian di browser

alt text

Apache2 Password Authentication

Buat file .htpasswd

Kita akan menggunakan htpasswd untuk membuat file yang berisi nama pengguna dan kata sandi yang dienkripsi.

Gunakan opsi -c (create) untuk membuat file baru

htpasswd -c /etc/apache2/.htpasswd rehan
alt text

Perintah diatas membuat username rehan dan passwordnya didalam file .htpasswd yang nantinya file ini akan digunakan oleh apache2 untuk melakukan autentikasi.

Menambahkan user baru pada file .htpasswd

Jika file .htpasswd sudah dibuat, maka untuk menambahkan user baru sama seperti perintah sebelumnya, hanya saja tidak menggunakan option -c.

root@ftp-server:~# htpasswd /etc/apache2/.htpasswd rehan2  

alt text
kita telah berhasil menambahkan user baru.

Konfigurasi Virtual Host Apache

Kita perlu mengarahkan apache2 menggunakan file .htpasswd untuk autentikasi.

root@ftp-server:~# nano /etc/apache2/sites-available/default-ssl.conf  
Tambahkan seperti pada gambar
alt text

root@ftp-server:~# service apache2 restart  

Pengujian client

Akses kembali web di browser, login dengan user yang telah dibuat didalam file .htpasswd

alt text
Jika username dan Password benar , maka apache2 akan menampilkan konten dari web yang dituju. alt text