Zimbra Let's Encrypt SSL Sertifika Kurulumu
Certbot ve ISRG Root X2 zinciri ile Zimbra üzerinde otomatik Let’s Encrypt SSL dağıtımı

Bu rehber, ZCS 8.8, 9.0 ve 10.0 sürümlerinde Let’s Encrypt ücretsiz SSL sertifikasının Certbot ile alınıp Zimbra servislerine (Nginx Proxy, Mailboxd, Postfix, IMAP, LDAP) uygulanmasını adım adım açıklar. Çok sunuculu yapılarda sertifikayı ayrı bir VM’de alıp manuel dağıtmanız önerilir.

1. Ön Koşullar (Hostname, CAA DNS ve Port 80)

Sunucu adının tam alan adı (FQDN) ile eşleştiğini ve DNS’te CAA kaydının Let’s Encrypt’e izin verdiğini doğrulayın:

su - zimbra -c "zmhostname"
hostname --fqdn
dig +short type257 $(hostname --d)
# Çıktıda 0 issue "letsencrypt.org" görünmelidir

Certbot --standalone modu için 80 portu boş olmalıdır (netstat -tulpn | grep ":80 " çıktı vermemelidir). Zimbra 80 portunu dinliyorsa proxy modunu HTTPS’e çevirin:

su - zimbra
zmprov ms `zmhostname` zimbraReverseProxyMailMode https
zmprov ms `zmhostname` zimbraMailMode https
/opt/zimbra/bin/zmtlsctl https
/opt/zimbra/libexec/zmproxyconfig -e -w -o -a 8080:80:8443:443 -x https -H `zmhostname`

2. Güncel Certbot Kurulumu (Python venv)

İşletim sistemi depolarındaki eski Certbot yerine Python sanal ortamı üzerinden güncel Certbot kurun ve ISRG Root X2 zinciriyle sertifikayı alın:

apt install -y python3 python3-venv libaugeas0
python3 -m venv /opt/certbot/
/opt/certbot/bin/pip install --upgrade pip certbot
ln -s /opt/certbot/bin/certbot /usr/local/sbin/certbot
/usr/local/sbin/certbot certonly -d $(hostname --fqdn) --standalone --preferred-chain "ISRG Root X2" --agree-tos --register-unsafely-without-email
ECDSA Desteği: Certbot 2.0+ varsayılan olarak ECDSA sertifika üretir. Zimbra zmcertmgr ECDSA desteğini ZCS 10.0.6, 9.0.0 P38 ve 8.8.15 P45 sonrasında eklemiştir. Wildcard sertifikalar için --preferred-challenges=dns --manual kullanılabilir.

3. Zimbra Dağıtım Betiği ve Cron Otomasyonu

Zimbra ISRG Root X2 kök sertifikasını hazır bulundurmadığı için chain.pem dosyasına eklenmelidir. Aşağıdaki betiği /usr/local/sbin/letsencrypt-zimbra olarak oluşturun:

#!/bin/bash
/usr/local/sbin/certbot certonly -d $(hostname --fqdn) --standalone -n --preferred-chain "ISRG Root X2" --agree-tos --register-unsafely-without-email
cp "/etc/letsencrypt/live/$(hostname --fqdn)/privkey.pem" /opt/zimbra/ssl/zimbra/commercial/commercial.key
chown zimbra:zimbra /opt/zimbra/ssl/zimbra/commercial/commercial.key
wget -O /tmp/ISRG-X2.pem https://letsencrypt.org/certs/isrg-root-x2.pem
rm -f "/etc/letsencrypt/live/$(hostname --fqdn)/chainZimbra.pem"
cp "/etc/letsencrypt/live/$(hostname --fqdn)/chain.pem" "/etc/letsencrypt/live/$(hostname --fqdn)/chainZimbra.pem"
cat /tmp/ISRG-X2.pem >> "/etc/letsencrypt/live/$(hostname --fqdn)/chainZimbra.pem"
chown zimbra:zimbra /etc/letsencrypt -R
cd /tmp
su zimbra -c '/opt/zimbra/bin/zmcertmgr deploycrt comm "/etc/letsencrypt/live/$(hostname --fqdn)/cert.pem" "/etc/letsencrypt/live/$(hostname --fqdn)/chainZimbra.pem"'
rm -f "/etc/letsencrypt/live/$(hostname --fqdn)/chainZimbra.pem"

Çalıştırma izni verip günlük cron bağlantısı oluşturun ve Zimbra’yı yeniden başlatın:

chmod +rx /usr/local/sbin/letsencrypt-zimbra
ln -s /usr/local/sbin/letsencrypt-zimbra /etc/cron.daily/letsencrypt-zimbra
/etc/cron.daily/letsencrypt-zimbra
su - zimbra -c "zmcontrol restart"

4. Manuel Doğrulama ve DANE İpucu

Manuel dağıtım yapıyorsanız önce zmcertmgr verifycrt comm, ardından zmcertmgr deploycrt comm çalıştırın. DANE (TLSA) kullanıyorsanız yenileme sırasında anahtarın değişmemesi için Certbot’a --reuse-key parametresini ekleyin.

Bu rehber yardımcı oldu mu?
Paylaş: LinkedIn WhatsApp

Zimbra Sunucunuzda Uzman Desteğe mi İhtiyacınız Var?

Kurulum, migrasyon, SSL/TLS, performans optimizasyonu ve 7/24 SLA bakım hizmetleri için ekibimizle iletişime geçin.

Destek / Teklif Al Paketleri İncele
Bilgi Bankasına Dön