Skip to main content

Mengaktifkan Lebih dari Satu SSL Virtual Host Pada Apache

Untuk beberapa keperluan, mungkin kita dihadapkan pada pilihan untuk menggunakan wildcard SSL Certificate yang memungkinkan 1 sertifikat SSL bisa digunakan untuk banyak sub domain.  Secara ekonomis, wildcard SSL Certificate memang menjadi jauh lebih murah apabila kita mempunya banyak sub domain yang akan dilindungi.  Namun, ini mungkin akan menimbulkan sedikit kesulitan bagi orang yang harus menginstall sertifikat tersebut apabila beberapa sub domain tersebut dijalankan pada satu server, satu ip, dan satu service apache (kita hanya akan membahas Apache).

Jamaknya, installasi sub domain pada server apache menggunakan direction (tag) <VirtualHost ip:port="">.  Namun masalah akan muncul bila kita sebelumnya sudah terbiasa dengan membuat virtual host untuk http (port 80) dan akan mencoba membuat virtual host untuk https (port 443).  Karena kita akan cenderung untuk melakukan hal yang biasa dibuat untuk port 80 kepada penyiapan SSL virtual host.  Bila hanya ada 1 SSL virtual host, apache will work properly. Namun bila kita harus menyiapkan  lebih dari 1 SSL virtual host, masalah baru akan muncul. Server tidak bisa dijalankan, dan bila kita buka log maka akan muncul seperti ini:


[Tue May 21 11:59:52 2013] [warn] _default_ VirtualHost overlap on port 443, the first has precedence
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:443
no listening sockets available, shutting down


Meskipun pada beberapa blog telah diuraikan bahwa, mulai Apache ver. 2.2.12, dukungan untuk memasang lebih dari satu SSL site pada satu IP (yang tentunya dilakukan dengan pendfinisian VirtualHost) dengan kemampuan yang disebut SNI (Server Name Indication). Namun, kenyataan yang ditemui seringkali tidak seindah yang diharapkan. Error message seperti di atas masih muncul dan server refuse our command to run. It make the technicians entering the crazy state. Even the have set SSLStrictSNIVHostCheck keyword disabled (although the default value is off or disabled). Wis kon... kapokmu kapan kon.

Setelah berusaha menjelajah alam internet dengan senantiasa marak sowan kepada mBah Gugel, akhirnya ketemu juga permasalahannya. Ternyata, kuncinya itu ada pada konfigurasi openssl nya. Nah lo... Jadi ini masalahnya ada pada SAN (Subject Based Alternative Name) extension. Jadi masalahnya bukan di Apache nya tapi di OpenSSL nya.

Extension ini diperkenalkan pertama kali pada tahun 1999. Dan sampai saat ini hampir semua browser sudah mensupport ini. Konfigurasinya juga gak susah karena konfigurasi defaultnya sudah support ini, cuma harus ditambah beberapa perbaikan sahaja. Untuk kasus saya (Ubuntu Server 12.0.4) file konfigurasi ada di /etc/ssl/openssl.conf.

req_extensions
Pertama kali, sampeyan harus membuka kommen dari req_extension. Line ini diperlukan untuk meload v3_req extension.

.
.
.
# WARNING: current versions of Netscape crash on BMPStrings or UTF8Strings
# so use this option with caution!
string_mask = nombstr

req_extensions = v3_req # The extensions to add to a certificate request &lt-- unquote this line please

[ req_distinguished_name ]
countryName = Country Name (2 letter code)
.
.
.



v3_req
Untuk extension ini, sampeyan harus menentukan altSubjectName, eh salah subjectAltName. Perhatikan bagian yang diblok abu-abu.

[ v3_req ]

# Extensions to add to a certificate request

basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names


alt_names
Ini adalah bagian yang akan menunjukkan sub domain mana saja yang akan didata sebagai subject alternative names.


[ alt_names ]
DNS.1 = dns1.domain.com
DNS.2 = dns2.domain.com
dst....


Sudah.....
Yap emang sudah, karena sekarang kita bisa mengkonfigurasi SNI dengan multiple SSL virtual host dan ehmmmm.... menjalankan Apache nya tanpa error. Monggo......!

Popular posts from this blog

Superfish Menginjeksi Laman-Laman Google

Beberapa bulan lalu pengguna lenovo sempat dibuat gerah dengan penggunaan software superfish yang sengaja disisipkan oleh Lenovo. Penggunaan adware yang sebenarnya dimaksudkan untuk memudahkan pengguna yang suka berbelanja ternyata justeru menjadi duri dalam daging bagi pengguna. Adware ini, mampu membongkar enkripsi web pengguna komputer dan akhirnya membuat komputer yang bersangkutan menjadi rentan terhadap serangan cyber. Dan yang paling ‘menggemaskan’ adalah adware ini bisa menyuntikkan iklan-iklan yang tidak diinginkan (bahkan sering menampilkan gambar perempuan dengan pakaian minim) ketika pengguna membuka web apapun. Meskipun Lenovo telah berjanji untuk menghentikan penggunaan Superfish, namun ternyata bahaya masih mengintai para pengguna internet. Google sebagai peramban paling populer saat ini berpotensi menyebarkan Ad Injection melalui ekstensyen nya. Berdasar riset dari Google, 4% laman google telah di-inject oleh superfish dengan iklan-iklan yang gak jelas. Dan 5....

Snort dan Suricata IDPS

Sugeng pagi, Mas! Pagi, gimana kabarnya? Baik, Mas. Gini, Mas! Saya lagi pusing ngurusin jaringan di kantor. Pusing kenapa? Itu lo, Mas, virus tau-tau nongol tanpa permisi.  Bikin jaringan jadi lemot. Yang lebih repotnnya lagi, kita gak tau dari sebelah mana penyebarannya. Lah, gitu aja kok pusing.  Kamu punya alat monitoring macem IDS gak? Apa itu IDS, Mas? IDS itu, singkatan coro londo Intrussion Detection System.  Maksudnya sistem buat mendeteksi aktifitas penyusupan. La, itu kan bukan antivirus, Mas! Lagian mana ada sih yang nyusup di kantor saya.  Apalagi kantor banyakan mainnya di jaringan private. La ini, yang salah! Jangan beranggapan bahwa setiap penyusupan itu datangnya dari luar. Ancaman kebocoran itu paling besar justeru datangnya dari dalam. Dan satu hal lagi penyusupan tidak harus terjadi dalam satu saat.  Seperti proses penyusupan yang dilakukan dengan menggunakan kuda trojan.  Para penyusup justeru anteng dulu di dalam kuda trojan....

Masih Pagi??

Ingat saat di sekolah S3 (SD,SMP,SMA) segala sesuatu yang menyangkut hasrat dan keinginan ada kalanya mentog kepada satu frasa: masih pagi. Berpikir tentang rezeki katanya masih terlalu pagi untuk memikirkan hal yang gak-gak gitu. Mengangankan tentang hari nanti (mungkin adalah saat ini), juga dibilang masih terlalu pagi apalagi jika sifatnya pesimistis. Terima kasih untuk semua yang mengatakan itu karena setidaknya aku bisa berfikir saat ini, bahwa memang masih terlalu pagi (saat itu), tetapi terlalu pagi itu bukan artinya untuk berhenti memulai. Tetapi terlalu pagi yang berarti bahwa memang sudah seharusnya dimulai saat itu. Kita tidak pernah tahu apa yang akan kita dapatkan nanti, dan karena itu kita harus tahu apa yang harus kita kerjakan saat ini. Merencanakan adalah kata yang sangat indah untuk diucapkan. Perencanaan adalah sesuatu yang sangat mudah untuk dituliskan manakala pelaksanaan tidak pernah terpikirkan. Semua bermuara pada satu kata : tangggung jawab . Tanggung jawab...