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

Tentang Ultraman; Pahlawan Jepang Yang Mendunia, Salah Satu Teman Masa Kecil

Google Doodle Ultraman Pagi ini, ada kejutan yang bikin saya tersenyum. Google Doodle, hari ini temanya adalah ulang tahun Eiji Tsuburaya  sang pereka tokoh Ultraman atau dalam lidah Jepang disebut Urotoraman, tayang pertama pada 7 Juli 1966 di TBS (Tokyo Broadcasting System).  Urotoraman atau Ultraman adalah Tokusatsu  atau SciFi, seorang pahlawan super yang berukuran rasaksa. Bila beberapa halaman wiki mengatakan bahwa ide pahlawan super berukuran raksasa adalah ide aseli Tsuburaya, bagi saya itu bukan aseli. Mungkin di Jepun sono, ide aseli. Namun di Indonesia raya nan kaya dan tercinta ini, itu bukan ide aseli.  Banyak tokoh pewayangan kita seperti Yudistira, Puntadewa, bahkan yang paing fenomenal adalah Prabu Kreshna yang mampu melakukan tiwikrama , alias berubah menjadi raksasa.  Meskipun itu terjadi ketika yang melakukan sedang murka.  Jadi Ultraman adalah bentuk Tiwikrama dari pahlawan Jepang.  Meskipun begitu dan di luar semua i...

Kerang Penghasil Mutiara Air Tawar

Kerang mutiara air tawar adalah kerang penghasil butir-butir mutiara air tawar, kerang yang habitat hidupnya di Perairan Tawar (Non Laut), kerang jenis ini memiliki nama ilmiah Margatifera margatifera, salah satu jenis species yang terancam punah, jenis moluska dan termasuk ke dalam Family Margaritiferidae . Jenis species kerang lainnya yang dapat menghasilkan butir mutiara air tawar adalah Hyriopsis dan Amblema , habitat asli penyebarannya di Wilayah Asia dan Amerika Utara, kedua jenis species tersebut memiliki keterkaitan dengan family Unionidae . Ciri-cirinya ialah memiliki cangkang nacre yang tebal, nacre adalah istilah dalam kekerangan yang artinya induk/ibu dalam lapisan mutiara (Mother of Pearl). Kerang mutiara jenis ini mampu menghasilkan butir mutiara yang indah dan berkualitas, dan mampu menghasilkan 5 hingga belasan butir mutiara per ekor kerang. Kerang mutiara air tawar Ia memiliki 2 (dua) cangkang yang simetris dan  engsel yang dapat membuka dan menutup u...

Bagaimana Menginstall Snort dengan Barnyard2 dan Snorby

Mas....! Apa? Nuwun sewu, Mas! Saya udah coba install Snort dan Suricata. Tapi bingung... Bingung gimana? Bingung nginstallnya. Sampeyan nginstallnya di mana? Sampeyan gimana? Ya di kantor, Mas! Masa di rumah.  Di rumah komputer kan cuma 1 doang. He he....! Maksud saya, nginstallnya di komputer apa, OS nya apa? Di PC, OS-nya linux Linux apa? Ubuntu, Mas! Hmm... Ubuntu? Sampeyan nginstallnya make apt-get install apa compile dari source-nya? Make apt-get install, Mas! sudo apt-get install snort snort-mysql Emang kenapa, Mas? Gak apa, Cuma biasanya saya nginstallnya langsung dari source. Gimana caranya? Begini, unduh dulu source terakhir yang stabil dari http://www.snort.org/snort-downloads/ Kemudian copykan ke mesin linux yang bakal kita install snort.  Jangan cuma download source snortnya thok.  Download juga library DAQ (Data Aqcuisition Library).  Karena snort juga butuh ini kalo mau mengenable-kan semua fitur snort. Jangan lupa juga download barny...