LetsEncrypt merupakan salah satu penyedia sertifikat SSL gratis yang banyak sekali digunakan.
Pemanfaatan sertifikat SSL dari LetsEncrypt pada Zimbra bisa dilakukan tetapi caranya tidak out-of-the-box. Sehingga pada artikel kali ini saya akan menjelaskan bagaimana cara menggunakan LetsEncrypt sebagai penyedia sertifikat SSL untuk instance zimbra Anda.
Saya menulis artikel ini dengan asumsi bahwa Anda sudah bisa dan terbiasa menggunakan certbot
untuk merequest sertifikat SSL.
Garis besar
Secara garis besar, cara untuk menggunakan LE (LetsEncrypt) pada Zimbra adalah sebagai berikut:
- Menghentikan zimbra-proxy (
zmproxyctl
) - Merequest SSL menggunakan
certbot
dengan flag--nginx
(dan tentunya dengan flag-flag lain yang digunakan untuk merequest sertifikat SSL). - Menyalin file-file SSL yang didapat, ke direktori yang bisa diakses oleh user
zimbra
. - Mendeploy sertifikat SSL sebagai user
zimbra
denganzmcertmgr deploycrt
- Menyetop semua instance
nginx
yang bukan dari zimbra. - Merestart service-service zimbra dengan
zmcontrol restart
Kebutuhan sistem
Paket-paket yang dibutuhkan pada sistem:
- Tentunya, aplikasi
certbort
- Plugin nginx untuk certbot:
python3-certbot-nginx
Langkah-Langkah
- Stop terlebih dahulu, service proxy milik zimbra, yang itu dia menggunakan port 80. Jika tidak distop, maka
certbot
tidak akan bisa menjalankan webserver nginx sebagai media validasi kepemilikan domain. Stop sebagai userzimbra
menggunakan perintah:zmproxyctl stop
- Jalankan
certbot
beserta flag-flag yang diperlukan. Misalnya berikut ini:
|
|
- Jika berhasil, buatlah direktori baru pada /opt/zimbra (atau ditempat yang lain yang bisa diakses oleh user
zimbra
) misalnya/opt/zimbra/ssl/mycerts
- Salin semua file-file SSL yang dibutuhkan dari folder
/etc/letsencrypt/live/mail.mydomain.tld
ke folder yang barusaja dibuat sebelumnya. - Jika diperlukan, backup private key di folder
/opt/zimbra/ssl/commercial/commercial.key
pada suatu folder lain. - Timpa file
commercial.key
yang asli tersebut tersebut dengan private key dari LetsEncrypt di/etc/letsencrypt/live/mail.mydomain.tld/privkey.pem
. Bisa menggunakan command berikut:
|
|
- Setelah itu, jalankan perintah
zmcertmgr
sebagai userzimbra
berikut:
|
|
- Begitu selesai, restart zimbra services:
|
|
- Selesai.
Akhir kata
Langkah-langkah diatas bisa Anda buatkan scriptnya agar bisa dijalankan secara praktis via cronjob.
Atau, Anda bisa menggunakan script buatan saya yang bernama zimbra-autossl.sh
di sini: https://github.com/annahri/zimbra-autossl
Penjelasan mengenai script tersebut sudah ada di repositori terkait. Pada intinya proses yang ada pada script tersebut, sesuai dengan garis besar yang sudah dijelaskan diatas.
Semoga bermanfaat, _barakallahufiikum