В началото на 21-ви век ресурсът IPv4 беше на границата на изчерпване. Още през 2011 година IANA разпредели на регионалните интернет регистратори последните пет оставащи блока /8 от своето адресно пространство, а през 2017 година адресите вече свършиха и за тях. Решението на катастрофалната липса на IPv4 адреси не само че стана протоколът IPv6, но и технологията SNI, която направи възможно хостването на огромен брой уебсайтове на един единствен IPv4 адрес. Същността на SNI е, че това разширение позволява на клиентите по време на ръкостискането да уведомят сървъра за името на сайта, с който искат да се свържат. Това позволява на сървъра да съхранява множество сертификати, а следователно да осигурява функционирането на множество домейни на един IP адрес. Технологията SNI стана особено търсена сред SaaS доставчиците за бизнес, които получиха възможността да хостват практически неограничен брой домейни, без да се налага да мислят за необходимия брой IPv4 адреси. Нека разгледаме как можем да реализираме поддръжка на SNI в Zimbra Collaboration Suite Open-Source Edition.

SNI работи във всички актуални и поддържани версии на Zimbra OSE. В случай, че имате Zimbra Open-Source, работеща на мулти-сървърна инфраструктура, ще е необходимо да извършите всички долуописани действия на възела с инсталиран Proxy сървър на Zimbra. Освен това ще ви трябват съответстващи двойки сертификат+ключ, както и доверени вериги от сертификати от вашия сертификационен център за всеки от домейните, които искате да хоствате на своя IPv4 адрес. Обърнете внимание, че основната причина за повечето грешки при настройка на SNI в Zimbra OSE е именно в неправилните файлове със сертификати. Затова ви съветваме внимателно да проверите всичко преди тяхното пряко инсталиране.
На първо място, за да работи правилно SNI, е необходимо да се въведе команда zmprov mcf zimbraReverseProxySNIEnabled TRUE на възела с Proxy сървъра на Zimbra и след това да рестартирате услугата Proxy с командата zmproxyctl restart.
Започваме с създаването на домейн име. За пример ще вземем домейн company.ru и след като домейнът вече е създаден, да определим името на виртуалния хост Zimbra и виртуалния IP адрес. Обърнете внимание, че името на виртуалния хост Zimbra трябва да съответства на името, което потребителят трябва да въведе в адресната лента на браузъра, за да получи достъп до домейна, и също така да съвпада с указаното в сертификата име. Например, ще вземем като име на виртуалния хост Zimbra mail.company.ru, а за виртуален IPv4 адрес ще използваме адреса 1.2.3.4.
След това е достатъчно да въведете командата zmprov md company.ru zimbraVirtualHostName mail.company.ru zimbraVirtualIPAddress 1.2.3.4, за да свържете виртуалния хост Zimbra с виртуалния IP-адресу. Обърнете внимание, че ако сървърът е зад NAT или защитна стена, е необходимо да се уверите, че всички заявки за домейна са насочени именно към свързания външен IP адрес, а не към адреса му в локалната мрежа.
След като всичко бъде направено, остава само да проверите и подготвите сертификатите на домейна за инсталация и след това да ги инсталирате.
Ако издаването на сертификата за домейна е преминало успешно, вие трябва да имате три файла със сертификати: два от тях представляват вериги от сертификати от вашия център за сертификация, а един е непосредственият сертификат за домейна. Освен това трябва да имате и файл с ключа, който сте използвали за получаване на сертификата. Създайте отделна папка /tmp/company.ru и поставете там всички налични файлове с ключове и сертификати. В крайна сметка трябва да получите нещо такова:
ls /tmp/company.ru
company.ru.key
company.ru.crt
company.ru.root.crt
company.ru.intermediate.crtСлед това ще обединим веригите на сертификатите в един файл с помощта на командата cat company.ru.root.crt company.ru.intermediate.crt >> company.ru_ca.crt и ще се уверим, че с сертификатите всичко е наред с помощта на командата /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. След като проверката на сертификатите и ключа бъде успешна, можете да започнете тяхната инсталация.
За да започнете инсталацията, първо обединете сертификата за домейна и доверените вериги от центровете за сертификация в един файл. Това става също с помощта на една команда от вида cat company.ru.crt company.ru_ca.crt >> company.ru.bundle. След това е необходимо да изпълните командата, за да запишете всички сертификати и ключ в LDAP: /opt/zimbra/libexec/zmdomaincertmgr savecrt company.ru company.ru.bundle company.ru.key, а след това да инсталирате сертификатите с помощта на командата /opt/zimbra/libexec/zmdomaincertmgr deploycrts. След инсталиране сертификатите и ключът от домейн company.ru ще бъдат съхранявани в папка /opt/zimbra/conf/domaincerts/company.ru.
С повтаряне на тези действия с различни домейн имена, но с един и същ IP адрес, може да се постигне разполагане на няколко стотици домейна на един IPv4 адрес. При това няма да срещнете проблеми с използването на сертификати от различни центрове за издаване. Проверка на коректността на всички извършени действия може да се направи в който и да е браузър, където всяко виртуално име на хост трябва да показва своето SSL сертификат.
При всякакви въпроси, свързани с Zextras Suite, можете да се свържете с представителя на компанията "Zextras" Екатерина Триандафилиди на електронната поща katerina@zextras.com
Източник: habr.com
