All'inizio del 21° secolo, il patrimonio di indirizzi IPv4 era quasi esaurito. Già nel 2011, l'IANA aveva assegnato agli enti di registrazione internet regionali gli ultimi cinque blocchi /8 del proprio spazio di indirizzi, e nel 2017 gli indirizzi erano finiti anche per loro. La risposta a questa catastrofica mancanza di indirizzi IPv4 è stata non solo l'emergere del protocollo IPv6, ma anche la tecnologia SNI, che ha consentito l'hosting di un numero enorme di siti web su un singolo indirizzo IPv4. Il principio dell'SNI è che questa estensione permette ai clienti, durante il processo di handshake, di comunicare al server il nome del sito con cui vogliono connettersi. Questo consente al server di memorizzare numerosi certificati, permettendo così di gestire molti domini su un unico indirizzo IP. La tecnologia SNI è diventata particolarmente richiesta tra i fornitori SaaS per le imprese, che hanno potuto ospitare praticamente un numero illimitato di domini senza preoccuparsi del numero necessario di indirizzi IPv4. Scopriamo ora come implementare il supporto SNI in Zimbra Collaboration Suite Open-Source Edition.

SNI funziona in tutte le versioni attuali e supportate di Zimbra OSE. Se si utilizza Zimbra Open-Source su un'infrastruttura multi-server, sarà necessario eseguire tutte le operazioni sottostanti sul nodo con il server proxy Zimbra installato. Inoltre, avrete bisogno di coppie corrispondenti di certificato+chiave, nonché delle catene di certificati affidabili dal vostro centro di certificazione per ciascuno dei domini che desiderate ospitare sul vostro indirizzo IPv4. Si prega di notare che la causa della stragrande maggioranza degli errori nella configurazione di SNI in Zimbra OSE è dovuta a file di certificato errati. Pertanto, è consigliabile controllare attentamente tutto prima della loro installazione diretta.
In primo luogo, per far funzionare correttamente SNI è necessario inserire il comando zmprov mcf zimbraReverseProxySNIEnabled TRUE sul nodo con il server proxy Zimbra, e poi riavviare il servizio Proxy usando il comando zmproxyctl restart.
Cominciamo con la creazione di un nome di dominio. Per esempio, prenderemo il dominio company.ru e, dopo aver creato il dominio, definiamo il nome dell'host virtuale Zimbra e l'indirizzo IP virtuale. Si prega di notare che il nome dell'host virtuale Zimbra deve corrispondere al nome che l'utente deve digitare nella barra del browser per accedere al dominio e deve anche coincidere con il nome indicato nel certificato. Per esempio, prendiamo come nome dell'host virtuale Zimbra mail.company.ru, e come indirizzo IPv4 virtuale utilizziamo l'indirizzo 1.2.3.4.
Dopo di che, basta inserire il comando zmprov md company.ru zimbraVirtualHostName mail.company.ru zimbraVirtualIPAddress 1.2.3.4, per associare l'host virtuale Zimbra all' indirizzo IP. Si prega di notare che se il server si trova dietro un NAT o un firewall, è necessario assicurarsi che tutte le richieste verso il dominio vadano proprio all'indirizzo IP esterno associato e non al suo indirizzo nella rete locale.
Una volta fatto tutto, rimane solo da verificare e preparare i certificati del dominio per l'installazione, e poi installarli.
Se la generazione del certificato per il dominio è avvenuta correttamente, dovresti avere tre file di certificati: due di essi rappresentano le catene di certificati dal tuo ente di certificazione, mentre uno è il certificato diretto per il dominio. Inoltre, dovresti avere un file con la chiave che hai usato per ottenere il certificato. Crea una cartella separata /tmp/company.ru e metti lì tutti i file di chiavi e certificati disponibili. Alla fine, dovrebbe apparire qualcosa del genere:
ls /tmp/company.ru
company.ru.key
company.ru.crt
company.ru.root.crt
company.ru.intermediate.crtDopo di che uniamo le catene di certificati in un unico file utilizzando il comando cat company.ru.root.crt company.ru.intermediate.crt >> company.ru_ca.crt e verifichiamo che i certificati siano a posto tramite il 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. Una volta che la verifica dei certificati e della chiave sarà andata a buon fine, si può procedere con l'installazione.
Per iniziare l'installazione, prima uniamo il certificato per il dominio e le catene affidabili dagli enti di certificazione in un unico file. Questo avviene anche tramite un comando del tipo cat company.ru.crt company.ru_ca.crt >> company.ru.bundleSuccessivamente, è necessario eseguire il comando per registrare tutti i certificati e le chiavi in LDAP: /opt/zimbra/libexec/zmdomaincertmgr savecrt company.ru company.ru.bundle company.ru.key, e poi installare i certificati utilizzando il comando /opt/zimbra/libexec/zmdomaincertmgr deploycrts. Dopo l'installazione, i certificati e la chiave del dominio company.ru verranno memorizzati nella cartella /opt/zimbra/conf/domaincerts/company.ru.
Ripetendo queste azioni utilizzando nomi di dominio diversi ma lo stesso indirizzo IP, è possibile ospitare centinaia di domini su un unico indirizzo IPv4. Inoltre, è possibile utilizzare senza problemi certificati di vari enti di certificazione. È possibile controllare la correttezza di tutte le operazioni svolte in qualsiasi browser, dove per ogni nome host virtuale dovrebbe apparire il proprio Certificato SSL.
Per qualsiasi domanda relativa a Zextras Suite, puoi contattare il rappresentante dell'azienda «Zextras», Ekaterina Triandafili, via email all'indirizzo katerina@zextras.com.
Fonte: habr.com
