Thursday, May 23, 2013

Deploy Commercial (Thawte) SSL Certificate Zimbra 5.0

Wihartoyo     Thursday, May 23, 2013    
Untuk menginstall SSL sertifikat ke webserver semisal Apache, mungkin, adalah hal yang umum dan bahkan ketika kita melakukan pemesanan sertifikat SSL tersebut pun telah kita tentukan untuk penginstallan ke sistem yang salah satu pilihannya adalah Apache dan mod_ssl. Dan tidak ada pilihan Zimbra.
Nah lo...
Tapi jangan kuatir don't worry! Karena, saya kurang tahu pastinya kenapa, namun yang pasti ini lebih ditentukan karena formatnya. Dan dalam hal ini zimbra masih menggunakan format yang sama dengan format Apache. So, no problem with the SSL commercial certificate installation into zimbra system. It will only be about the installation procedure that you must know.
Anggapan yang berlaku dalam dongeng ini cuma satu. Pelaku harus sudah punya file srtifikat dan intermediate dam *.pem format yang valid.

Langkah Pertama
Langkah pertama yang harus dilakukan dalam rangka mempersiapkan SSL sertificate untuk diinstall ke system zimbra adalah login sebagai root dan masuk ke direktori commercial ssl dari zimbra.

root@mymail:~# cd /opt/zimbra/ssl/zimbra/commercial [enter]


Download file thawte_Primary_Root_CA.pem.  Copy file private key, intermediate, dan file sertificate.

Langkah Kedua
Setelah semua file yang dibutuhkan tersedia; rename private key menjadi commercial.key, file sertifikat menjadi commercial.crt, dan gabungkan thawte_Primary_root_CA.pem dengan intermediate file dan certificate file.

root@mymail:~#cat thawte_Primary_Root_CA.pem intermediate.pem commercial.crt > commercial_ca.crt

Langkah ketiga
Sampeyan haru lakukan verifikasi dengan perintah berikut:

root@mymail:~#/opt/zimbra/bin/zmcertmgr verifycrt comm commercial.key commercial.crt commercial_ca.crt

dan sampeyan harus bisa mendapatkan hasil berikut:

** Verifying commercial.crt against commercial.key
Certificate (commercial.crt) and private key (commercial.key) match.
Valid Certificate: commercial.crt: OK



Langkah Keempat.

Ini adalah langkah terakhir.  Tetap sebagai root, deploy sertifikat ke dalam sistem zimbra dengan perintah berikut:

root@mymail:~#/opt/zimbra/bin/zmcertmgr deploycrt comm commercial.crt commercial_ca.crt

***Sorry dorry morry bin maaf wal nyuwun ngapunten gak bisa nampilin hasilnya****

Langkah Penutup
Ini bukan langkah deployment, tapi langkah untuk mengefektifkeun sertifikat ke dalam sistem zimbra.  Di sini sampeyan harus login sebagai zimbra dan lakukan restart sytem dengan perintah berikut

zimbra@mymail:~#zmcontrol stop[enter]
zimbra@mymail:~#zmcontrol start[enter]

Sudah!!!!!!

Wednesday, May 22, 2013

Mengaktifkan Lebih dari Satu SSL Virtual Host Pada Apache

Wihartoyo     Wednesday, May 22, 2013    
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......!

Recommended