Waste Paper

March 16, 2010

Mutual Authentication Server (Apache2)

Mutual Authentication sering juga disebut two way authentication atau otentikasi 2 arah. Seperti halnya komunikasi client-server, disini client meng-otentikasi server dan sebaliknya server meng-otentikasi client, sehingga mampu meningkatkan kualitas keamanan dalam bertransaksi, dengan metode ini tentu saja lebih baik dibanding https biasa (non mutual authentication) dimana hanya server yang memiliki sertifikat untuk di otentikasi oleh client. Dengan mutual authentication, server dan client sama2 memiliki sertifikat sehingga keduanya bisa saling meng-otentikasi. Untuk bisa saling berkomunikasi pastinya sertifikat client harus trust oleh server, dan begitu juga sebaliknya.

Untuk eksperimen ini, kita bisa membuat dua buah sertifikat (client dan server) + sebuah sertifikat CA yang menandatangani sertifikat-sertifikat tersebut, dengan demikian tercipta trusted certificate antara client dan server.

Pada contoh ini, otentikasi antar server dan client hanya sebatas kepercayaan yg dimiliki server terhadap sertifikat client dan sebaliknya, sebetulnya bisa lebih dari sekedar itu, seperti yang kutemukan di EJBCA, dalam mutual authentication, server mampu memberikan akses2 tertentu kepada client sesuai dengan sertifikatnya, dengan kata lain, server tidak hanya memiliki kepercayaan terhadap sertifikat client, tapi server juga mampu mengenali dan memanfaatkan data2 pada sertifikat client yang bertransaksi dengannya untuk memberlakukan suatu role pada client tersebut.

Setting HTTPS Mutual Authentication pada apache :
Setelah selesai melakukan instalasi apache2 web server
$sudo apt-get install apache2

Aktifkan module SSL dengan perintah apache2 enable module
$sudo a2enmod ssl

Pastikan port 443 (https) sudah ter-enable
$sudo vi /etc/apache2/ports.conf

NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
Listen 443
</IfModule>

Konfigurasi site SSL, kita dapat menggunakan file /etc/apache2/sites-available/default-ssl dengan mengaktifkannya menggunakan perintah apache2 enable site
$sudo a2ensite default-ssl

Edit file default-sll
$sudo vi /etc/apache2/sites-available/default-ssl

JkMount /production* worker1

<VirtualHost *:443>
JkMount /production*        worker1
SSLEngine On
SSLCertificateFile [path]/server-cert.pem
SSLCertificateKeyFile [path]/server-key.pem
SSLCACertificateFile [path]/AdminCA1.pem
SSLVerifyClient require
SSLVerifyDepth 1
</VirtualHost>

Restart apache
$sudo /etc/init.d/apache2 restart

Setelah restart, coba server https mutual authentication dengan menanamkan sertifikat client pada browser yang kita gunakan, contoh dengan mozilla :
Edit -> Preferences -> Advance -> Encryption -> View Certificates -> Import

Nb:
Keterangan mengenai MOD_JK, lihat post sebelumnya.

Advertisement

Theme: Shocking Blue Green. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.