Як правильно налаштувати SNI у Zimbra OSE?

На початку 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?

SNI працює у всіх актуальних та підтримуваних версіях Zimbra OSE. У тому випадку, якщо у вас Zimbra Open-Source працює на мультисерверній інфраструктурі, вам необхідно буде виконувати всі наведені нижче дії на вузлі з встановленим Proxy-сервером Zimbra. Крім цього вам знадобляться збігаються пари сертифікат+ключ, а також довірені ланцюжки сертифікатів від центру сертифікації для кожного з доменів, який ви хочете розмістити на своїй IPv4-адресі. Звертаємо вашу увагу, що причина переважної більшості помилок при налаштуванні SNI у Zimbra OSE полягає саме у некоректних файлах із сертифікатами. Тому радимо уважно все перевірити перед їхньою безпосередньою установкою.

В першу чергу, для того, щоб SNI нормально запрацював, потрібно ввести команду. zmprov mcf zimbraReverseProxySNIEnabled TRUE на вузлі з проксі-сервером Zimbra, а потім перезапустити службу Proxy за допомогою команди zmproxyctl restart.

Почнемо ми зі створення доменного імені. Наприклад ми візьмемо домен company.ru і після того, як домен вже створений, визначимося з ім'ям віртуального хоста Zimbra і з віртуальною IP-адресою. Звертаємо увагу на те, що ім'я віртуального хоста Zimbra має відповідати імені, яке користувач повинен ввести в рядку браузера, щоб отримати доступ до домену, а також збігатися із зазначеною в сертифікаті назвою. Для прикладу візьмемо як ім'я віртуального хоста Zimbra mail.company.ru, а як віртуальна IPv4-адреса використовуємо адресу 1.2.3.4.

Після цього достатньо запровадити команду zmprov md 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» Катерини Тріандафіліді електронною поштою [захищено електронною поштою]

Джерело: habr.com

Додати коментар або відгук