zimbra@le-test:~$ fuente ~/bin/zmshutil; zmsetvarsnzimbra@le-test:~$ zmhostnamenle-test.zimbra.technzimbra@le-test:~$ nombre de host --fqdnnle-test.zimbra.tech
Este artículo es una instrucción paso a paso sobre cómo configurar Zimbra con certificados Let's Encrypt.
Si está ejecutando una instalación de Zimbra en varios servidores, se recomienda configurar una máquina virtual dedicada para obtener el certificado Let's Encrypt y seguir este blog .
requisitos previos
Esta guía asume que está utilizando Ubuntu 20 y ha configurado un nombre de host y DNS correctos, para verificar, ejecute lo siguiente como usuario zimbra
y verifiquezmhostname
que sea lo mismo que hostname --fqdn
:
zimbra@le-test:~$ fuente ~/bin/zmshutil; zmsetvarsnzimbra@le-test:~$ zmhostnamenle-test.zimbra.technzimbra@le-test:~$ nombre de host --fqdnnle-test.zimbra.tech
A continuación, debe haber configurado un registro DNS de CAA para que Let's Encrypt pueda emitir certificados para su dominio, para verificar, ejecute lo siguiente y asegúrese de que 0 issue "letsencrypt.org"
esté en la salida del comando:
zimbra@le-test:~$ sudo apt install -y herramientas de red dnsutilsnzimbra@le-test:~$ dig +tipo corto257 $(nombre de host --d)n0 problema salvaje "letsencrypt.org"n0 problema "letsencrypt.org"
A continuación, compruebe si Zimbra escucha en el puerto 80, Let's Encrypt debe poder ejecutar un servidor web temporal en el puerto 80, por lo que Zimbra no puede utilizarlo.
Esto no es un problema ya que la mayoría de los navegadores ahora prueban https primero. El siguiente comando no debería tener ningún resultado:
netstat-tulpn | grep ":80"
En caso de que su Zimbra esté escuchando en el puerto 80, debe cambiar el modo proxy de esta manera:
sudo su zimbra -nzmprov ms `zmhostname` zimbraReverseProxyMailMode httpsnzmprov ms `zmhostname` zimbraMailMode httpsn/opt/zimbra/bin/zmtlsctl httpsn/opt/zimbra/libexec/zmproxyconfig -e -w -o -a 8080:80:8443:443 -x https -H `zmhostname`
Si tiene problemas para configurar Zimbra, puede usar nuestro instalador automático que también se encargará de Let's Encrypt:
https://github.com/Zimbra/zinstaller
Instalación de Certbot
Certbot en los repositorios de Ubuntu es demasiado antiguo y no se puede usar para Zimbra. La versión más nueva se puede instalar mediante snap o pip. Ejecute los siguientes comandos para instalar Cerbot y obtener un certificado:
apt install -y python3 python3-venv libaugeas0npython3 -m venv /opt/certbot/n/opt/certbot/bin/pip instalar --actualizar pipn/opt/certbot/bin/pip instalar certbotnln -s /opt/certbot/bin/certbot/usr/local/sbin/certbotn/usr/local/sbin/certbot certonly -d $(hostname --fqdn) --standalone --preferred-chain "ISRG Root X1" --agree-tos --register-unsafely-without-email
Implementación de Zimbra
Cree el siguiente script que implementa el certificado Let's Encrypt en Zimbra:
gato >> /usr/local/sbin/letsencrypt-zimbra << EOFn#!/bin/bashn/usr/local/sbin/certbot certonly -d $(nombre de host --fqdn) --independiente --manual-public-ip-logging-ok -n --preferred-chain "ISRG Root X1" --agree-tos - -registrarse-de forma insegura-sin-emailncp "/etc/letsencrypt/live/$(nombre de host --fqdn)/privkey.pem" /opt/zimbra/ssl/zimbra/commercial/commercial.keynchown zimbra:zimbra /opt/zimbra/ssl/zimbra/commercial/commercial.keynwget -O /tmp/ISRG-X1.pem https://letsencrypt.org/certs/isrgrootx1.pem.txtnrm -f "/etc/letsencrypt/live/$(nombre de host --fqdn)/chainZimbra.pem"ncp "/etc/letsencrypt/live/$(nombre de host --fqdn)/chain.pem" "/etc/letsencrypt/live/$(nombre de host --fqdn)/chainZimbra.pem"ncat /tmp/ISRG-X1.pem >> "/etc/letsencrypt/live/$(nombre de host --fqdn)/chainZimbra.pem"nchown zimbra:zimbra /etc/letsencrypt -Rncd/tmpnsu zimbra -c '/opt/zimbra/bin/zmcertmgr deploymentcrt comm "/etc/letsencrypt/live/$(nombre de host --fqdn)/cert.pem" "/etc/letsencrypt/live/$(nombre de host --fqdn) /chainZimbra.pem"'nrm -f "/etc/letsencrypt/live/$(nombre de host --fqdn)/chainZimbra.pem"nfin de semana
Establezca el permiso correcto, configure un trabajo cron y ejecute la implementación:
chmod +rx /usr/local/sbin/letsencrypt-zimbranln -s /usr/local/sbin/letsencrypt-zimbra /etc/cron.daily/letsencrypt-zimbran/etc/cron.daily/letsencrypt-zimbra
Finalmente reinicie Zimbra para cargar el nuevo certificado:
sudo su zimbra -c '/opt/zimbra/bin/zmcontrol reiniciar'
El trabajo cron renovará su certificado aproximadamente 1 mes antes de la fecha de vencimiento, debe reiniciar manualmente Zimbra antes de la fecha de renovación para cargar el nuevo certificado.
Usando DANE
Debe usar Certbot con la --reuse-key
opción, consulte
https://blog.zimbra.com/2022/04/zimbra-skillz-enable-dane-verification-for-incoming-email-in-zimbra/
Uso de múltiples dominios https con SNI