{"id":518,"date":"2025-04-24T09:00:00","date_gmt":"2025-04-24T02:00:00","guid":{"rendered":"https:\/\/ilmusekawan.web.id\/?p=518"},"modified":"2025-04-24T13:48:04","modified_gmt":"2025-04-24T06:48:04","slug":"instalasi-ssl-dengan-fitur-sni-di-zimbra-multi-domain","status":"publish","type":"post","link":"https:\/\/ilmusekawan.web.id\/index.php\/2025\/04\/24\/instalasi-ssl-dengan-fitur-sni-di-zimbra-multi-domain\/","title":{"rendered":"Instalasi SSL Dengan Fitur SNI di Zimbra Multi Domain"},"content":{"rendered":"<div class=\"wp-block-image wp-duotone-unset-1\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"643\" height=\"308\" src=\"https:\/\/ilmusekawan.web.id\/wp-content\/uploads\/2025\/04\/sni.png\" alt=\"\" class=\"wp-image-544\" srcset=\"https:\/\/ilmusekawan.web.id\/wp-content\/uploads\/2025\/04\/sni.png 643w, https:\/\/ilmusekawan.web.id\/wp-content\/uploads\/2025\/04\/sni-300x144.png 300w, https:\/\/ilmusekawan.web.id\/wp-content\/uploads\/2025\/04\/sni-535x256.png 535w\" sizes=\"auto, (max-width: 643px) 100vw, 643px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>SNI<\/strong> atau <strong>Server Name Indication<\/strong> adalah fitur tambahan dari protokol TLS\/SSL yang memungkinkan penggunaan beberapa sertifikat SSL pada satu alamat IP yang dibagi (shared IP address). SNI memungkinkan server untuk meng-host beberapa sertifikat SSL pada satu alamat IP, yang sangat berguna dalam pengaturan multi-domain. Zimbra sendiri sudah mendukung fitur SNI sejak versi rilis 8.7.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Umumnya, browser web modern sudah mendukung fitur SNI ini. Namun, Anda tetap harus waspada karena ada beberapa browser yang belum atau tidak mendukung fitur SNI, terutama pada browser versi lawas. Jika browser web Anda belum atau tidak mendukung fitur SNI, maka pesan peringatan akan muncul ketika Anda mencoba mengakses halaman web yang menggunakan fitur tersebut.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Persiapan<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Sebelum proses instalasi dapat dilakukan, ada beberapa hal yang perlu Anda siapkan.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>SSL Sertifikat yang valid.<\/strong><br>Gunakan <code>openssl<\/code> untuk memeriksanya, dan pastikan sertifikatnya belum kedaluwarsa.<br><pre class=\"wp-block-code\"><code>(root)# openssl x509 -noout -in SERVER.crt -dates<br><br>notBefore=Apr 22 08:44:58 2025 GMT<br>notAfter=Apr 22 08:44:58 2026 GMT<\/code><\/pre><\/li>\n\n\n\n<li><strong>SSL private key tidak boleh terenkripsi.<\/strong><br>Untuk memeriksanya, jalankan perintah di bawah ini! Jika Anda diminta untuk memasukkan kata sandi, maka private key Anda masih dalam keadaan terenkripsi.<br><pre class=\"wp-block-code\"><code>(root)# openssl rsa -noout -modulus -in PRIV.key<\/code><\/pre>Untuk menghilangkan enkripsi dari private key, anda perlu menjalankan perintah di bawah ini!<br><pre class=\"wp-block-code\"><code>(root)# openssl rsa -in PRIV.key -out PRIV-PWLESS.key<\/code><\/pre><\/li>\n\n\n\n<li><strong>SSL private key harus dalam format RSA.<\/strong><br>Periksa header dan footer dari key. Jika bentuknya <strong>bukan<\/strong> seperti ini:<br><pre class=\"wp-block-code\"><code>(root)# sed -n '1p;$p' PRIV-PWLESS.key<br><br>-----BEGIN RSA PRIVATE KEY-----<br>-----END RSA PRIVATE KEY-----<\/code><\/pre>Maka anda perlu memformatnya ke dalam format RSA dengan perintah di bawah ini!<br><pre class=\"wp-block-code\"><code>(root)# openssl rsa -in PRIV.key -out PRIV-PWLESS-RSA.key -traditional<\/code><\/pre><\/li>\n\n\n\n<li><strong>Certificate authority.<\/strong><br>Beberapa penyedia biasanya menyertakan file Certificate Authority dalam arsip SSL. Namun, ada juga beberapa penyedia yang tidak menyertakannya. Jika Anda tidak memiliki file ini, maka Anda harus membuatnya sendiri.<br><br>File Certificate Authority berisi informasi tentang penyedia sertifikat SSL yang Anda miliki. Anda dapat membuatnya dengan menggabungkan Intermediate dan Root CA.<br><pre class=\"wp-block-code\"><code>(root)# cat INTERMEDIATE.crt ROOTCA.crt &gt; CA.crt<\/code><\/pre><\/li>\n\n\n\n<li><strong>Domain Virtual Host.<\/strong><br>Agar fitur SNI dapat berfungsi, kita perlu memberi tahu Zimbra kapan SNI harus diaktifkan. Oleh karena itu, kita perlu mengonfigurasi virtual host untuk domain yang ingin kita aktifkan fitur SNI-nya.<br><pre class=\"wp-block-code\"><code>(zimbra)$ zmprov ma DOMAIN.COM zimbraVirtualHostName ZMAIL.DOMAIN.COM<\/code><\/pre>Ketika user mengakses <em>&#8220;ZMAIL.DOMAIN.COM<\/em>&#8221; maka Zimbra akan secara otomatis mengaktifkan fitur SNI untuk address tersebut.<br><br><\/li>\n\n\n\n<li><strong>Kumpulkan semua file yang diperlukan di dalam satu folder yang dapat diakses oleh user zimbra.<\/strong><\/li>\n<\/ol>\n\n\n\n<ol class=\"wp-block-list\"><\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Instalasi SSL SNI<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Aktifkan fitur SNI di Zimbra.<\/strong><br><pre class=\"wp-block-code\"><code>(zimbra)$ zmprov mcf zimbraReverseProxySNIEnabled TRUE<\/code><\/pre><\/li>\n\n\n\n<li><strong>Verifikasi sertifikat SSL match dengan key-nya.<\/strong><br><pre class=\"wp-block-code\"><code>(zimbra)$ \/opt\/zimbra\/bin\/zmcertmgr verifycrt comm PRIV-PWLESS-RSA.key SERVER.crt CA.crt<br><br>** Verifying 'SERVER.crt' against 'PRIV-PWLESS-RSA.key'<br>Certificate 'SERVER.crt' and private key 'PRIV-PWLESS-RSA.key' match.<br>** Verifying 'SERVER.crt' against 'CA.crt'<br>Valid certificate chain: SERVER.crt: OK<\/code><\/pre><\/li>\n\n\n\n<li><strong>Buat sertifikat bundle.<\/strong><br>Untuk membuat SSL bundle, Anda memerlukan sertifikat server yang dikeluarkan oleh Certificate Authority (CA), serta sertifikat Intermediate yang menghubungkan sertifikat server dengan sertifikat Root CA. Pastikan urutan sertifikat dalam bundle adalah sertifikat server diikuti oleh sertifikat Intermediate dan, jika diperlukan, sertifikat Root CA.<br><pre class=\"wp-block-code\"><code>(zimbra)$ cat SERVER.crt CA.crt &gt; CA-BUNDLE.crt<\/code><\/pre><\/li>\n\n\n\n<li><strong>Periksa urutan sertifikat.<\/strong><br>Penyebab paling umum gagalnya proses deploy sertifikat SSL adalah karena salah urutan. Pastikan urutan bundle sudah benar dengan perintah di bawah!.<br><pre class=\"wp-block-code\"><code>(zimbra)$ openssl crl2pkcs7 -nocrl -certfile CA-BUNDLE.crt | openssl pkcs7 -print_certs -noout<br><br>subject=C = ID, L = Buitenzorg, O = Failliet Oostindische Compagnie, CN = ZMAIL.DOMAIN.COM<br>issuer=C = ID, O = DigiMon Inc, CN = Digital Monster Global TLS SHA256 2025 CA1<br><br>subject=C = ID, O = DigiMon Inc, CN = Digital Monster Global TLS SHA256 2025 CA1<br>issuer=C = ID, O = DigiMon Inc, OU = www.digimon.py, CN = Digital Monster Root G3<br><br>subject=C = ID, O = DigiMon Inc, OU = www.digimon.py, CN = Digital Monster Root G3<br>issuer=C = ID, O = DigiMon Inc, OU = www.digimon.py, CN = Digital Monster Root G3<\/code><\/pre>Dari contoh output di atas, dapat anda perhatikan urutan sertifikat yang benar akan menghasilkan value &#8220;<em>issuer<\/em>&#8221; yang sama dengan value &#8220;<em>subject<\/em>&#8221; dari urutan setelahnya.<br><br><\/li>\n\n\n\n<li><strong>Install SSL untuk domain terkait.<\/strong><br><pre class=\"wp-block-code\"><code>(zimbra)$ \/opt\/zimbra\/libexec\/zmdomaincertmgr savecrt DOMAIN.COM CA-BUNDLE.crt PRIV-PWLESS-RSA.key<\/code><\/pre><\/li>\n\n\n\n<li><strong>Deploy SSL.<\/strong><br><pre class=\"wp-block-code\"><code>(zimbra)$ \/opt\/zimbra\/libexec\/zmdomaincertmgr deploycrts<br><br>** Deploying cert for DOMAIN.COM...done.<\/code><\/pre><\/li>\n\n\n\n<li><strong>Restart proxy service.<\/strong><br><pre class=\"wp-block-code\"><code>(zimbra)$ zmproxyctl restart<\/code><\/pre><\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Test<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Jika anda tidak menemukan error apapun selama proses instalasi, artinya SSL SNI sudah berhasil ter-deploy. Anda bisa membuka halaman <strong>virtual host<\/strong> dengan menggunakan web browser yang sudah mendukung fitur SNI.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>SNI atau Server Name Indication adalah fitur tambahan dari protokol TLS\/SSL yang memungkinkan penggunaan beberapa sertifikat SSL pada satu alamat IP yang dibagi (shared IP address). SNI memungkinkan server untuk meng-host beberapa sertifikat SSL pada satu alamat IP, yang sangat berguna dalam pengaturan multi-domain. Zimbra sendiri sudah mendukung fitur SNI&#8230;<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"telegram_tosend":false,"telegram_tosend_message":"","telegram_tosend_target":0,"footnotes":""},"categories":[12,4,13],"tags":[66,65,5],"class_list":["post-518","post","type-post","status-publish","format-standard","hentry","category-linux","category-tips-trick","category-zimbra","tag-sni","tag-ssl","tag-zimbra"],"_links":{"self":[{"href":"https:\/\/ilmusekawan.web.id\/index.php\/wp-json\/wp\/v2\/posts\/518","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ilmusekawan.web.id\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ilmusekawan.web.id\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ilmusekawan.web.id\/index.php\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/ilmusekawan.web.id\/index.php\/wp-json\/wp\/v2\/comments?post=518"}],"version-history":[{"count":32,"href":"https:\/\/ilmusekawan.web.id\/index.php\/wp-json\/wp\/v2\/posts\/518\/revisions"}],"predecessor-version":[{"id":582,"href":"https:\/\/ilmusekawan.web.id\/index.php\/wp-json\/wp\/v2\/posts\/518\/revisions\/582"}],"wp:attachment":[{"href":"https:\/\/ilmusekawan.web.id\/index.php\/wp-json\/wp\/v2\/media?parent=518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ilmusekawan.web.id\/index.php\/wp-json\/wp\/v2\/categories?post=518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ilmusekawan.web.id\/index.php\/wp-json\/wp\/v2\/tags?post=518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}