(https dengan menggunakan mod_ssl)
Waaa… lama gak liat slackware nech… sekarang udah gede yach udah versi 12… Gara-gara disuruh bangun server nech buat mainan di kampus ceritanya… Salah satunya ya ini, pengin implemen SSL di web server Apache-nya, biar kelihatannya keren and secure bisa pake https nanti untuk webmail-nya ketimbang http. Apa seh SSL itu ?
Dalam prinsip kerja SSL, semua data dalam jaringan akan di enkripsi sehingga tidak bisa terbaca kecuali oleh komputer tujuan. Oleh karena itu, diperlukan dua buah kunci, yang satu disebut kunci pribadi, dan lainnya disebut kunci publik. Kunci publik adalah kunci yang diberikan kepada komputer tujuanm sedangkan kunci pribadi adalah kunci yang dipegang oleh komputer asal.
Pada saat sebuah data hendak dikirimkan dari komputer asal (server) ke klien, maka data dienkripsi dengan kunci privat dan hanya bisa dibuka dengan kunci publik di komputer tujuan. Apabila berupa form pengisian, maka isi dari form akan dienkripsi dengan kunci publik dari komputer tujuan dan hanya bisa dibuka dengan kunci pribadi di komputer asal (server).
Sekarang udah tau kan apa itu SSL… disini mengunakan distro slackware 12 yang mana pada dokumentasi sebelumnya udah kita aktifkan modul SSL pada konfigurasi di webservernya (httpd.conf) Sebenarnya, waktu pertama kali install slackware 12 juga ada sedikit binggung pas mau konfigurasi Apache-nya lah dimana folder apache yang bisanya ada di /etc . Untuk Apache, file-filenya tidak lagi berada di /etc/apache/ tetapi di /etc/httpd/ :)) .
sebelum mulai lagi baca doa dulu dech… sama ambil cemilan (cemilan favorit : keripik singkong asin 😛 )
Oke sebelum otak atik konfigurasi apache-nya mati’in dulu dech service-nya
root@student:/etc/httpd# /etc/rc.d/rc.httpd stop
Untuk mengaktifkan SSL, disini memerlukan sertifikat semisal dari VeriSign. Tujuannya apaan sih pake SSL segala? Ya, kalo buat company gede, biar dipercaya sama konsumen mereka atas keterjagaan sekuritas dari koneksi mereka. Disini, kita bikin aja sendiri sertifikatnya. 😛
- Pindah bekerja di direktori /etc/httpd. Menjalankan openssl untuk membuat sertifikat SSL.
root@student# cd /etc/httpd/ root@student# openssl req -new -x509 -newkey rsa:1024 -days 3650 -keyout privatekey.pem -out server.pem
- Mengisi keperluan pembuatan sertifikat SSL dan kunci pribadi
Generating a 1024 bit RSA private key
….
writing new private key to ‘privatekey.pem’ Enter PEM pass phrase: dodolkampret
Verifying – Enter PEM pass phrase: dodolkampret
….
Country Name (2 letter code) [AU]:ID
State or Province Name (full name) [Some-State]:Kalimantan Timur
Locality Name (eg, city) []:Samarinda
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Universitas Mulawarman
Organizational Unit Name (eg, section) []:Fakultas MIPA
Common Name (eg, YOUR name) []:Aditya Perdana
Email Address []:[email protected]
- Membuat kunci Publicroot@student# openssl rsa -in privatekey.pem -out privatekey.pem
Enter pass phrase for privatekey.pem: dodolkampret
writing RSA key
root@student# cat privatekey.pem >> server.pem
root@student# rm privatekey.pem
- Menyisipkan SSL Certificate pada httpd.conf
root@student# vi /etc/httpd/httpd.conf
kemudian cari dan pastikan baris-baris ini ter-uncomment (hilangkan #)
LoadModule ssl_module lib/httpd/modules/mod_ssl.so –> baris ke 99
Include /etc/httpd/extra/httpd-ssl.conf –> baris ke 496
sudah cukup itu saja yang di obok-obok httpd.cong -nya besok-besok lagi 😀
Kalau di Slackware 12.0 modul-modul semacam ssl, virtual host dikasih file konfigurasi sendiri di direktori /etc/httpd/extra/. Intinya cari file konfigurasi (jika memang tidak dijadikan satu dengan httpd.conf nya) yang sesuai.
- Konfigurasi httpd-ssl.conf
root@student# vi /etc/httpd/extra/httpd-ssl.conf
Kita akan memakai virtual host, untuk itu pada section dibawah, pastikan sudah sesuai dengan settingan server yang anda miliki.
–[BOF]–
#Tempat kerja si https, pastikan dia uncommented
Listen 443DocumentRoot “/srv/httpd/htdocs�?
ServerName 192.168.1.1:443
ServerAdmin [email protected]
ErrorLog /var/log/httpd/error_log
TransferLog /var/log/httpd/access_log<Directory />
Allow from all
Options +Indexes
</Directory>
#Pastikan SSL Engine dalam keadaan On, pada Section SSL Engine Switch# SSL Engine Switch :
# Enable/Disable SSL for this virtual host.SSLEngine on
# Cari Section Server Certificate, kemudian sesuaikan path dengan path file .crt yang tadi kita buat
SSLCertificateFile /etc/httpd/server.pem
# Cari Section Server Private Key, kemudian sesuaikan path dengan path file .key yang tadi kita buat
SSLCertificateKeyFile /etc/httpd/server.pem
–[EOF]–
Udah, untuk file /etc/httpd/extra/httpd-ssl.conf cukup segitu diutak-atiknya.
- Jika sudah semua silahkan start lagi service webserver-nya
root@student# /etc/rc.d/rc.httpd start
Sampai disini urusan kita udah selesai sekarang tinggal di cek, apa bener udah running SSL-nya… sapa tau tadi cuman di bo’ongin Adit aza 😛
coba anda browse ke web server anda tersebut menggunakan protokol https
https://192.168.1.1
Atau dengan men-scan computer anda
root@student# nmap 192.168.1.1
bila port 443 sudah terbuka, seperti dibawah ini, maka seharusnya anda susah sukses sampai di langkah ini!
Starting Nmap 4.20 ( http://insecure.org ) at 2007-07-17 21:21 AKDT
Interesting ports on student.unmul (10.14.207.7):
Not shown: 1692 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
Nmap finished: 1 IP address (1 host up) scanned in 0.577 seconds
Oke Sippz selesai…. ;))
Toex Pak Anton, Thaks atas referensi-referensinya 🙂
wah. makasih banget nih artikel nya. sukses buat omz adit
sama-sama omz… biar gak lupa makanya saya bikin dokumentasi saya sendiri… maklum orangnya rada pelupa nich… ya sukur dech klo bermamfaat 🙂