Na początku XXI wieku zasób, jakim są adresy IPv4, był na krawędzi wyczerpania. Już w 2011 roku IANA przydzieliła regionalnym rejestratorom internetowym ostatnie pięć pozostałych bloków /8 ze swojej przestrzeni adresowej, a już w 2017 roku adresy u nich się wyczerpały. Odpowiedzią na katastrofalny niedobór adresów IPv4 stało się nie tylko wprowadzenie protokołu IPv6, ale także technologia SNI, która umożliwiła hostowanie ogromnej liczby stron internetowych na jednym adresie IPv4. Istota SNI polega na tym, że to rozszerzenie pozwala klientom podczas handshake'a informować serwer o nazwie witryny, z którą chcą się połączyć. Umożliwia to serwerowi przechowywanie wielu certyfikatów, a tym samym zapewnienie działania wielu domen na jednym adresie IP. Technologia SNI stała się szczególnie popularna wśród dostawców SaaS dla firm, którzy zyskali możliwość hostowania praktycznie nieograniczonej liczby domen bez względu na liczbę wymaganych adresów IPv4. Dowiedzmy się zatem, jak można wdrożyć wsparcie dla SNI w Zimbra Collaboration Suite Open-Source Edition.

SNI działa w wszystkich aktualnych i wspieranych wersjach Zimbra OSE. Jeśli masz Zimbra Open-Source działającą na infrastrukturze wieloserwerowej, będziesz musiał wykonać wszystkie poniższe kroki na węźle z zainstalowanym serwerem proxy Zimbra. Ponadto potrzebne będą pary certyfikat+klucz oraz zaufane łańcuchy certyfikatów od twojego centrum certyfikacji dla każdej z domen, które chcesz umieścić na swoim adresie IPv4. Zwracamy uwagę, że powodem przeważającej większości błędów podczas konfigurowania SNI w Zimbra OSE są błędne pliki z certyfikatami. Dlatego zalecamy dokładne sprawdzenie wszystkiego przed ich bezpośrednią instalacją.
Po pierwsze, aby SNI działało prawidłowo, należy wprowadzić polecenie zmprov mcf zimbraReverseProxySNIEnabled TRUE na węźle z serwerem proxy Zimbra, a następnie zrestartować usługę Proxy za pomocą polecenia zmproxyctl restart.
Zaczniemy od stworzenia nazwy domeny. Dla przykładu weźmiemy domenę company.ru A po stworzeniu domeny zdefiniujemy nazwę wirtualnego hosta Zimbra oraz wirtualny adres IP. Zwracamy uwagę, że nazwa wirtualnego hosta Zimbra musi odpowiadać nazwie, którą użytkownik powinien wpisać w pasku przeglądarki, aby uzyskać dostęp do domeny, oraz zgadzać się z nazwą podaną w certyfikacie. Na przykład weźmy jako nazwę wirtualnego hosta Zimbra mail.company.ru, a jako wirtualny adres IPv4 użyjemy adresu 1.2.3.4.
Wystarczy wpisać polecenie zmprov md company.ru zimbraVirtualHostName mail.company.ru zimbraVirtualIPAddress 1.2.3.4, aby powiązać wirtualny host Zimbra z wirtualnym adresem IP. Zauważamy, że jeśli serwer znajduje się za NAT lub zaporą, należy zadbać o to, aby wszystkie zapytania do domeny kierowane były właśnie na przypisany do niej zewnętrzny adres IP, a nie na jego adres w sieci lokalnej.
Po wykonaniu wszystkich działań pozostaje jedynie sprawdzić i przygotować certyfikaty domeny do instalacji, a następnie je zainstalować.
Jeśli wydanie certyfikatu na domenę przebiegło poprawnie, powinieneś mieć trzy pliki z certyfikatami: dwa z nich stanowią łańcuchy certyfikatów z Twojego centrum certyfikacji, a jeden jest bezpośrednim certyfikatem na domenę. Dodatkowo powinieneś mieć plik z kluczem, który wykorzystałeś do uzyskania certyfikatu. Utwórz osobny folder /tmp/company.ru i umieść tam wszystkie posiadane pliki z kluczami i certyfikatami. W efekcie powinno to wyglądać mniej więcej tak:
ls /tmp/company.ru
company.ru.key
company.ru.crt
company.ru.root.crt
company.ru.intermediate.crtNastępnie połączymy łańcuchy certyfikatów w jeden plik za pomocą polecenia cat company.ru.root.crt company.ru.intermediate.crt >> company.ru_ca.crt i upewnimy się, że z certyfikatami wszystko w porządku za pomocą polecenia /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. Po tym, jak weryfikacja certyfikatów i klucza zakończy się sukcesem, można przystąpić do ich instalacji.
Aby rozpocząć instalację, najpierw połączymy certyfikat na domenę i zaufane łańcuchy z centrów certyfikacji w jeden plik. Odbywa się to również za pomocą jednego polecenia w postaci cat company.ru.crt company.ru_ca.crt >> company.ru.bundle. Następnie należy wykonać polecenie, aby zapisać wszystkie certyfikaty i klucz w LDAP: /opt/zimbra/libexec/zmdomaincertmgr savecrt company.ru company.ru.bundle company.ru.key, a następnie zainstalować certyfikaty za pomocą polecenia /opt/zimbra/libexec/zmdomaincertmgr deploycrts. Po zainstalowaniu certyfikaty i klucz od domeny company.ru będą przechowywane w folderze /opt/zimbra/conf/domaincerts/company.ru.
Powtarzając te działania przy użyciu różnych nazw domen, ale tego samego adresu IP, można uzyskać hostowanie setek domen na jednym adresie IPv4. Przy tym można bez problemów korzystać z certyfikatów od różnych centrów ich wydawania. Sprawdzić poprawność wszystkich wykonanych czynności można w dowolnej przeglądarce, gdzie dla każdej z wirtualnych nazw hosta powinien być wyświetlany własny Certyfikat SSL.
Wszelkie pytania dotyczące Zextras Suite można kierować do przedstawiciela firmy „Zextras” Ekateriny Triandafiliidi pod adresem e-mail katerina@zextras.com
Źródło: habr.com
