Virtualización, Linux y soluciones Open Source
Zimbra es un excelente software Open Source orientado al sector empresarial capaz de proporcionar las capacidades más avanzadas como servidor de correo electrónico, con funciones de calendario en plan GroupWare, y sincronización con clientes de escritorio como MS Outlook ó Mozilla Thunderbird.
Como antecedentes, ya tenemos el servidor Zimbra corriendo, y funcionando correctamente, pero cada vez que abrimos el cliente de correo, nos vemos con el siguiente aviso:

Ya habíamos aceptado e instalado el certificado SSL del sitio, pero el problema es que el servidor de correo emite un certificado de un nombre de máquina distinto al que nosotros accedemos. Es decir, se accede al correo desde webmail.kernelia.com, pero el certificado SSL emitido pertenece a correo.kernelia.local.
Todo esto tiene una explicación, y es que Zimbra automáticamente genera el certificado con el FQDN (Fully Qualified Domain Name) de la máquina sobre la que se realiza la instalación, que en este caso, y al tratarse de un servidor local y desmilitarizado, se encuentra en un dominio LOCAL (correo.kernelia.local). Una vez instalado, el acceso al correo queremos que también sea desde/hacia el “mundo exterior”, está claro, con lo que se le asigna una dirección PÚBLICA (webmail.kernelia.com).
Abrimos una consola ssh con nuestro servidor de correo:
aivars@aivars:~$ ssh -lroot correo
Y consultamos el certificado instalado actualmente:
correo:~ # /opt/zimbra/bin/zmcertmgr viewdeployedcrt
::service mta::
notBefore=Jan 14 22:29:01 2010 GMT
notAfter=Jan 14 22:29:01 2011 GMT
subject= /C=US/ST=N/A/O=Zimbra Collaboration Suite/
OU=Zimbra Collaboration Suite/
CN=correo.kernelia.local
issuer= /C=US/ST=N/A/L=N/A/O=Zimbra Collaboration
Suite/OU=Zimbra Collaboration Suite/
CN=correo.kernelia.local
SubjectAltName=
::service proxy::
notBefore=Jan 14 22:29:01 2010 GMT
notAfter=Jan 14 22:29:01 2011 GMT
subject= /C=US/ST=N/A/O=Zimbra Collaboration Suite/
OU=Zimbra Collaboration Suite/
CN=correo.kernelia.local
issuer= /C=US/ST=N/A/L=N/A/O=Zimbra Collaboration
Suite/OU=Zimbra Collaboration Suite/
CN=correo.kernelia.local
SubjectAltName=
::service mailboxd::
notBefore=Jan 14 22:29:01 2010 GMT
notAfter=Jan 14 22:29:01 2011 GMT
subject= /C=US/ST=N/A/O=Zimbra Collaboration Suite/
OU=Zimbra Collaboration Suite/
CN=correo.kernelia.local
issuer= /C=US/ST=N/A/L=N/A/O=Zimbra Collaboration
Suite/OU=Zimbra Collaboration Suite/
CN=correo.kernelia.local
SubjectAltName=
::service ldap::
notBefore=Jan 14 22:29:01 2010 GMT
notAfter=Jan 14 22:29:01 2011 GMT
subject= /C=US/ST=N/A/O=Zimbra Collaboration Suite/
OU=Zimbra Collaboration Suite/
CN=correo.kernelia.local
issuer= /C=US/ST=N/A/L=N/A/O=Zimbra Collaboration
Suite/OU=Zimbra Collaboration Suite/
CN=correo.kernelia.local
SubjectAltName=
Comprobamos que para todos los servicios (mta, proxy, mailboxd y ldap) estamos usando el CN (Certificate Name) correo.kernelia.local. Ahora creamos el nuevo certificado autofirmado con CN webmail.kernelia.local:
correo:~ # /opt/zimbra/bin/zmcertmgr createcrt \
> -new -days 365 -subject "/C=ES/ST=N/A/L=Valencia\
> /O=Kernelia/OU=ZCS/CN=webmail.kernelia.com"
Validation days: 365
** Creating /opt/zimbra/conf/zmssl.cnf...done
** Backup /opt/../zimbra to /opt/../zimbra.3125547
** Generating a server csr for download self ...
** Creating /opt/zimbra/conf/zmssl.cnf...done
** Backup /opt/../zimbra to /opt/../zimbra.3125547
** Creating server cert request ../server.csr...done.
** Saving server config key zimbraSSLPrivateKey...done.
** Signing cert request ../server.csr...done.
Con esto, ya tendremos el certificado creado, y tan solo restará instalarlo:
correo:~ # /opt/zimbra/bin/zmcertmgr deploycrt \
> self -allserver
** Saving global config key zimbraSSLCertificate...done.
** Saving global config key zimbraSSLPrivateKey...done.
** Installing mta certificate and key...done.
** Installing slapd certificate and key...done.
** Installing proxy certificate and key...done.
** Creating pkcs12 file ../jetty.pkcs12...done.
** Creating keystore file ../keystore...done.
** Installing CA to /opt/zimbra/conf/ca...done.
Y comprobar que el nuevo certificado se ha generado con la información correcta:
correo:~ # /opt/zimbra/bin/zmcertmgr viewdeployedcrt
::service mta::
notBefore=Jan 23 11:55:17 2010 GMT
notAfter=Jan 23 11:55:17 2011 GMT
subject= /C=ES/ST=N/O=Kernelia/OU=ZCS/
CN=webmail.kernelia.com
issuer= /C=US/ST=N/A/L=N/A/O=Zimbra Collaboration Suite/
OU=Zimbra Collaboration Suite/
CN=correo.kernelia.local
SubjectAltName=
::service proxy::
notBefore=Jan 23 11:55:17 2010 GMT
notAfter=Jan 23 11:55:17 2011 GMT
subject= /C=ES/ST=N/O=Kernelia/OU=ZCS/
CN=webmail.kernelia.com
issuer= /C=US/ST=N/A/L=N/A/O=Zimbra Collaboration Suite/
OU=Zimbra Collaboration Suite/
CN=correo.kernelia.local
SubjectAltName=
::service mailboxd::
notBefore=Jan 23 11:55:17 2010 GMT
notAfter=Jan 23 11:55:17 2011 GMT
subject= /C=ES/ST=N/O=Kernelia/OU=ZCS/
CN=webmail.kernelia.com
issuer= /C=US/ST=N/A/L=N/A/O=Zimbra Collaboration Suite/
OU=Zimbra Collaboration Suite/
CN=correo.kernelia.local
SubjectAltName=
::service ldap::
notBefore=Jan 23 11:55:17 2010 GMT
notAfter=Jan 23 11:55:17 2011 GMT
subject= /C=ES/ST=N/O=Kernelia/OU=ZCS/
CN=webmail.kernelia.com
issuer= /C=US/ST=N/A/L=N/A/O=Zimbra Collaboration Suite/
OU=Zimbra Collaboration Suite/
CN=correo.kernelia.local
SubjectAltName=
Tan sólo quedará reiniciar los servicios de Zimbra para que el nuevo certificado se aplique:
correo:~ # su zimbra zimbra@correo:/> zmcontrol stop && zmcontrol start Host correo.kernelia.local Stopping stats...Done. Stopping mta...Done. Stopping spell...Done. Stopping snmp...Done. Stopping archiving...Done. Stopping antivirus...Done. Stopping antispam...Done. Stopping imapproxy...Done. Stopping memcached...Done. Stopping mailbox...Done. Stopping logger...Done. Stopping ldap...Done. Host correo.kernelia.local Starting ldap...Done. Starting logger...Done. Starting mailbox...Done. Starting antispam...Done. Starting antivirus...Done. Starting snmp...Done. Starting spell...Done. Starting mta...Done. Starting stats...Done.
La siguiente vez que arranquemos el cliente de correo, deberemos volver a instalar el nuevo certificado creado, y ya no veremos más la ventanita de información, ya que ahora ya concuerda la dirección con la que accedemos al correo con la dirección del certificado SSL generado y usado por Zimbra.
Para más información acerca de los certificados en Zimbra y el comando “zmcertmgr”, podéis ver la documentación oficial aquí.
Kernelia es una empresa consultora de sistemas informáticos que ofrece soluciones de virtualización de servidores, virtualización de escritorios, virtualización de aplicaciones, servicios TI basados en soluciones open source, mantenimiento y administración de sistemas y centros de datos, que ofrece servicios a otras empresas en el campo de la Informática Corporativa.
Nuestro principal activo es el equipo humano, formado por profesionales de gran valor y especialización, con amplios conocimientos y experiencia, con un alto sentido de servicio al cliente, del compromiso, de la colaboración y de la mejora constante e identificado con la visión de la empresa.
Jgto
enero 25th, 2010 el 7:52
Doc, igual no funciona, mi servidor es mail.jgto.com y accedo por mail.jgto.com y de todos modos no funciona, o bueno tendrías que explicar un poco mas detallado. no te parece?
Antonio Ivars
enero 26th, 2010 el 0:58
Hola Jgto, por favor, ¿me podrías describir si el problema que te da el cliente de correo es que no concuerda el certificado emitido de la dirección usada para acceder? Tal como me comentas, el servidor tiene la misma FQDN que la dirección de acceso. ¿has reiniciado zimbra para que tenga en cuenta el nuevo certificado? ¿El certificado que emite qué DN tiene? Lo puedes consultar haciendo un /opt/zimbra/bin/zmcertmgr viewdeployedcrt
Juan Carlos
marzo 26th, 2010 el 15:43
Hola muy buena explicacion pero funciona tambien para el modo web??
Antonio Ivars
marzo 26th, 2010 el 17:57
Hola Juan Carlos, en el siguiente post sobre Zimbra explico cómo habilitar el modo HTTPS al Webmail, y te confirmo que siguiendo estos pasos para modificar el certificado tanto el acceso SSL al correo como el acceso a través de Webmail por HTTPS usarán el mismo certificado.
Cristian
junio 10th, 2011 el 15:22
Buenas..estube probando tu tutorial con zimbra 6.0.12 y al querer instalar el certificado me salio error con ldap respecto al FQDN: ERROR: service.FAILURE (system failure: ZimbraLdapContext) (cause: javax.naming.CommunicationException correo.dominio.com.ar:389) y no instalo nada…revise y me sigue saliendo el mismo certificado.
Cual puede ser el problema?
Antonio Ivars
octubre 30th, 2011 el 12:08
Hola Cristian, ¿generaste el certificado con el FQDN completo de la máquina servidor Zimbra? Recuerda que /etc/hosts debe concordar el nombre y dominio completo de la máquina. Para comprobar esto puedes ejecutar:
hostname
domainname
En tu caso debería devolverte correo (hostname) y dominio.com.ar (domainname)