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).

Procedimiento

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í.