Mengatasi Gagal Verifikasi SSL Let’s Encrypt Tanpa CA Bundle di Zimbra Mail Server

Ada kalanya kita menggunakan SSL gratis untuk server kita. Bisa untuk testing, sekadar penggunaan hobi, ataupun sebagai SSL sementara sambil menunggu proses pengadaan SSL enterprise selesai. Bisa saja kita hanya diberikan sertifikat (.crt) dan key (.key)-nya saja oleh tim terkait (yang generate SSL-nya) dan tentu saja CA bundle-nya akan berbeda dengan CA bundle eksisting (misalnya sebelumnya pakai SSL enterprise).

Tulisan ini kita fokuskan pada kasus Zimbra server yang akan kita ganti SSL-nya untuk sementara menggunakan LetsEncrypt (LE).

Apabila SSL kita sudah expired, maka kita tidak dapat menggunakan berbagai service yang ada (misalnya webmail) dan kita juga akan kesulitan (gagal) ketika kita ingin cek kondisi server menggunakan perintah seperti zmcontrol status atau zmprov.
Contoh error yang muncul:

Unable to start TLS: SSL connect attempt failed error:0A000086:SSL routines::certificate verify failed when connecting to ldap master.

Cek SSL Baru (Temporer)

Misalnya kita sudah simpan file SSL temporer di server (misalnya disimpan di direktori /tmp/ssl_2026), maka kita perlu cek terlebih dahulu siapa sih yang menerbitkan SSL-nya. Kita bisa gunakan perintah berikut:

openssl x509 -in ssl.crt -text -noout | grep -i "issuer"

Contoh output:

Issuer: C=US, O=Let's Encrypt, CN=YR2
CA Issuers - URI: http://yr2.i.lencr.org/

Output di atas menunjukkan bahwa sertifikat ini menggunakan rantai terbaru dari Let’s Encrypt, yaitu Intermediate YR2. Rantai ini membutuhkan interkoneksi tiga tingkat agar mendapat kepercayaan sistem: Sertifikat Anda $\leftarrow$ Intermediate YR2<- Root YR <- ISRG Root X1.

“YR2” mengacu pada otoritas sertifikat (CA) perantara dari hirarki baru Let’s Encrypt. File .pem adalah format standar yang menyimpan kunci dan sertifikat. Jika Anda menerima rantai YR2 (seperti fullchain.pem), file ini menggabungkan sertifikat domain Anda, perantara YR2, dan root

Perakitan CA Bundle

Kita perlu “rakit” file CA bundle-nya sendiri.

  • Download & Convert Intermediate YR2
    Let’s Encrypt menyediakan berkas berformat DER. Kita akan download dan mengubahnya ke format PEM:

     wget http://yr2.i.lencr.org/ -O yr2.der
     openssl x509 -inform der -in yr2.der -out yr2.pem
    
  • Download & Convert Root YR
      wget http://yr.i.lencr.org/ -O yr.der
      openssl x509 -inform der -in yr.der -out yr.pem
    
  • Download Global Anchor Root (ISRG Root X1)
      wget https://letsencrypt.org/certs/isrgrootx1.pem
    

Proses Perakitan CA Bundle

Gabungkan ketiga berkas tersebut ke dalam satu file teks dengan urutan berikut: Intermediate paling atas, disusul Root, dan Global Root paling bawah.

cat yr2.pem yr.pem isrgrootx1.pem > ca_bundle.crt

Verifikasi

Pastikan kecocokan berkas menggunakan tool bawaan Zimbra sebelum melakukan instalasi SSL.

Uji validitas key dan CA bundle:

/opt/zimbra/bin/zmcertmgr verifycrt comm commercial.key ssl.crt ca_bundle.crt

Indikator Sukses: Terminal harus menampilkan pesan Valid certificate chain: ssl.crt: OK. Jika muncul eror, periksa kembali urutan penggabungan filenya.

Proses instalasi bisa dilakukan seperti biasa. Pastikan file-file yang dibutuhkan sudah diberikan hak akses yang sesuai (zimbra), dan sudah backup file SSL eksisting. Selengkapnya bisa cek tulisanku yang ini: https://zaidan.web.id/2025/06/17/cara-renewal-ssl-di-zimbra/

Tulisan kali ini sampai di sini dulu ya. Sampai jumpa. Bye.

By Zaidan

Leave a Reply

Your email address will not be published. Required fields are marked *