A principios del siglo XXI, se estaba agotando un recurso tan crucial como las direcciones IPv4. Ya en 2011, IANA asignó a los registradores de internet regionales los últimos cinco bloques /8 de su espacio de direcciones, y para 2017, se habían agotado incluso para ellos. La respuesta a la catastrófica escasez de direcciones IPv4 no solo fue la aparición del protocolo IPv6, sino también la tecnología SNI, que permite alojar una gran cantidad de sitios web en una única dirección IPv4. La esencia de SNI radica en que esta extensión permite a los clientes comunicar al servidor el nombre del sitio con el que desean conectarse durante el proceso de apretón de manos. Esto permite al servidor almacenar múltiples certificados, asegurando así el funcionamiento de numerosos dominios en una sola dirección IP. La tecnología SNI ha sido especialmente demandada entre los proveedores de SaaS para empresas, que ahora pueden alojar prácticamente un número ilimitado de dominios sin tener que considerar la cantidad necesaria de direcciones IPv4. Vamos a descubrir cómo implementar el soporte de SNI en Zimbra Collaboration Suite Open-Source Edition.

SNI funciona en todas las versiones actuales y soportadas de Zimbra OSE. En caso de que su Zimbra Open-Source esté operando en una infraestructura de múltiples servidores, será necesario realizar todas las acciones que se describen a continuación en el nodo con el servidor Proxy de Zimbra. Además, necesitará pares de certificados y claves coincidentes, así como cadenas de certificados de confianza de su centro de certificación para cada uno de los dominios que desee alojar en su dirección IPv4. Tenga en cuenta que la causa de la abrumadora mayoría de los errores al configurar SNI en Zimbra OSE se debe a archivos de certificados incorrectos. Por lo tanto, le aconsejamos verificar todo cuidadosamente antes de su instalación.
Primero que nada, para que SNI funcione correctamente, es necesario ingresar el comando zmprov mcf zimbraReverseProxySNIEnabled TRUE en el nodo con el servidor proxy de Zimbra, y luego reiniciar el servicio Proxy con el comando zmproxyctl restart.
Comenzaremos creando un nombre de dominio. Por ejemplo, tomaremos el dominio company.ru y, después de que se haya creado el dominio, definamos el nombre del host virtual de Zimbra y la dirección IP virtual. Es importante señalar que el nombre del host virtual de Zimbra debe coincidir con el nombre que el usuario debe ingresar en la barra de direcciones del navegador para acceder al dominio, así como coincidir con el nombre indicado en el certificado. Por ejemplo, tomemos como nombre del host virtual de Zimbra mail.company.ru, y como dirección IP virtual de IPv4 utilizamos la dirección 1.2.3.4.
Después de esto, basta con ingresar el comando zmprov md company.ru zimbraVirtualHostName mail.company.ru zimbraVirtualIPAddress 1.2.3.4, para vincular el host virtual de Zimbra a la virtual IP. Cabe destacar que si el servidor está detrás de un NAT o un cortafuegos, es necesario asegurarse de que todas las solicitudes al dominio se dirijan exactamente a la dirección IP externa vinculada, y no a su dirección en la red local.
Una vez que se haya hecho todo, solo queda verificar y preparar los certificados del dominio para la instalación, y luego proceder a instalarlos.
Si la emisión del certificado para el dominio se realizó correctamente, debe tener tres archivos con certificados: dos de ellos representan las cadenas de certificados de su centro de certificación, y uno es el certificado directo para el dominio. Además, debe tener un archivo con la clave que utilizó para obtener el certificado. Crea una carpeta separada /tmp/company.ru y coloca allí todos los archivos de claves y certificados disponibles. Al final, debería quedar algo así:
ls /tmp/company.ru
company.ru.key
company.ru.crt
company.ru.root.crt
company.ru.intermediate.crtDespués de esto, uniremos las cadenas de certificados en un solo archivo utilizando el comando cat company.ru.root.crt company.ru.intermediate.crt >> company.ru_ca.crt y nos aseguraremos de que los certificados estén en orden utilizando el comando /opt/zimbra/bin/zmcertmgr verifycrt comm /tmp/company.ru/company.ru.key /tmp/company.ru/company.ru.crt /tmp/company.ru/company.ru_ca.crt. Después de que la verificación de los certificados y la clave sea exitosa, podemos proceder a su instalación.
Para comenzar la instalación, primero uniremos el certificado del dominio y las cadenas de confianza de los centros de certificación en un solo archivo. Esto también se hace con un comando del tipo cat company.ru.crt company.ru_ca.crt >> company.ru.bundle. Después de esto, es necesario ejecutar el comando para guardar todos los certificados y la clave en LDAP: /opt/zimbra/libexec/zmdomaincertmgr savecrt company.ru company.ru.bundle company.ru.key, y luego instalar los certificados utilizando el comando /opt/zimbra/libexec/zmdomaincertmgr deploycrts. Después de la instalación, el certificado y la clave del dominio company.ru se almacenarán en la carpeta /opt/zimbra/conf/domaincerts/company.ru.
Al repetir estas acciones utilizando diferentes nombres de dominio, pero con la misma dirección IP, es posible alojar cientos de dominios en una sola dirección IPv4. Además, se pueden utilizar sin problemas certificados de diferentes autoridades de certificación. Se puede verificar la corrección de todas las acciones realizadas en cualquier navegador, donde para cada nombre de host virtual debe aparecer su Certificado SSL.
Para cualquier pregunta relacionada con Zextras Suite, puede ponerse en contacto con la representante de la empresa "Zextras" Ekaterina Triandafiliidi al correo electrónico katerina@zextras.com
Fuente: habr.com
