Tym razem chciałem przestawić ciekawy artykuł, przygotowany przez Jacka Światowiaka – MVP w kategorii Directory Services. Nie prowadzi własnego bloga, więc w ten sposób chciał się podzielić własnymi doświadczeniami.
Jak przypisać certyfikat typu Wildcard do usług POP/IMAP w Exchange?
UPDATE:
W Exchange 2016 nastąpiła istotna zmiana - jest bezpieczniej, ale trudniej. Nawet wpisując (jak widać dalej w artykule) nazwę usługi, należy wpisać nazwę, która jest zapisana w certyfikacie. Na szczęście zdecydowana większość certyfikatów wildcardowych oprócz nazwy *.testowa.pl ma również nazwę samej domeny - testowa.pl. Czyli konfigurując usługę musimy wpisać
set-popsettings -X509certificatename testowa.pl
Mimo że natywnym kanałem komunikacyjnym dla klientów systemu Exchange 2013 jest MAPI, to cały czas wiele organizacji musi wykorzystywać jeszcze kanały POP3/IMAP4, chociażby ze względu na aplikacje LOB. Domyślnie protokoły POP3 i IMAP4 nie są włączone w żadnej wersji serwera Exchange. By wykorzystać POP3/IMAP4 należy w pierwszej kolejności zmienić tryb uruchomienia tych usług z ‘manual’ na ‘automatic’ i włączyć odpowiednie usługi. Nie będę omawiał przeznaczenia obu usług.
Rysunek 1. Usługi Exchange – obsługa POP – konfiguracja domyślna
Rysunek 2. Usługi Exchange – obsługa POP – konfiguracja zmodyfikowana
Zakładam, że w magazynie certyfikatów konta komputera znajdują się certyfikaty wymagane przez Exchange, jak również certyfikat wildcard, co widać z rysunku 3.
Rysunek 3. Magazyn certyfikatów konta komputera
Na początek parę informacji, właściwości oraz przeznaczenia znajdujących się w tym magazynie certyfikatów.
Domyślny certyfikat typu self-sign generowany w momencie instalacji serwera Exchange | Wygenerowany certyfikat typu SAN, który został przypisany do usług webowych (IIS) |
| |
Certyfikat wykorzystywany wewnętrznie przez Exchange | Nazwy alternatywne dla certyfikatu powyżej. |
| |
Rysunek 4. Właściwości certyfikatów na serwerze Exchange
Aby podejrzeć parametry skonfigurowanej usługi POP czy IMAP, przechodzimy na poziom konfiguracji serwerów, klikamy właściwości serwera poziom POP.
Rysunek 5. Właściwości usługi POP w konsoli Exchange 2013
Najbardziej interesujące parametry dla administratora to metody uwierzytelniania:
Rysunek 6. Zmiana metody uwierzytelniania dla usługi POP
Domyślnie jest skonfigurowany mechanizm Secure TLS connection. Jednak wiele starszych klientów wymaga metody prostszej – Basic authentication (Plain text).
Aby podejrzeć, do jakich usług są przypisane poszczególne certyfikaty, należy sięgnąć w konsoli EAC na poziom Server – Certyfikaty. Jak widać z rysunku 7 certyfikat o nazwie WILDCARD nie jest powiązany z żadną usługą.
Rysunek 7. Informacje o przypisaniu certyfikatu o nazwie WILDCARD
Rysunek 8. Informacje o przypisaniu certyfikatu EX2k13
Rysunek 9. Informacje o przypisaniu certyfikatu Microsoft Exchange Server Auth Certificate
Rysunek 10. Informacje o przypisaniu certyfikatu Microsoft Exchange
Ostatni certyfikat, domyślnj nazwie WMSVC nie jest przypisany do żadnych usług pocztowych i przez Exchange nie jest wykorzystywany. Czasem na liście może również pojawić się certyfikat dla usług federacyjnych, ale to dotyczy tylko niektórych konfiguracji.
Jak widać z prezentowanych rysunków 8 i 19 do usługi pop są przywiązane aż dwa certyfikaty (sic!). Również dla usługi SMTP są przypisane dwa certyfikaty. Pozostaje odpowiedzieć na pytanie jak Exchange wybiera właściwy certyfikat, który ma być użyty z daną usługą.
Spróbujmy zatem przypisać certyfikat WILDCARD do usługi POP. Po kliknięciu na certyfikat, w jego właściwościach na zakładce Services, mamy możliwość wybrania z jakimi usługami ma on być powiązany.
Rysunek 11. Przywiązanie certyfikatu do usług
Niestety czeka na niespodzianka. Konsola nie pozwala na przypisanie certyfikatu typu wildcard do usługi POP/IMAP. Próba skorzystania z polecenia Set-PopSettings również zakończy się niepowodzeniem.
Rysunek 12. Komunikat błędu przy powiązaniu certyfikatu typu wildcard
Jak podejrzymy konfigurację poleceniem Get-PopSettings (rysunek 13), wartość pola X509CertificateName będzie dość dziwna. Nie ma w magazynie certyfikatu o takiej nazwie. Tu jest właśnie rozwiązanie naszego zagadnienia. Serwer Exchange stara się z listy certyfikatów dostępnych w magazynie wybrać najbardziej pasujący do nazwy serwera (SERWER nosi krótką nazwę EX@K13-1, nazwa ta jest zawarta w certyfikacie typu SAN, który sobie wygenerowałem korzystając z wewnętrznej jednostki certyfikującej – sam certyfikat prezentowany jest na rysunku 4 i 8.
Rysunek 13. Konfiguracja POP
Załóżmy teraz ze usługa POP wystawiona jest na zewnątrz pod jakąkolwiek nazwą – byle by była rozwiązywana na prawidłowy adres IP, np. mail2.testowa.pl – tej nazwy nie ma w naszym certyfikacie typu SAN przypisanym do usługi POP – zatem klienci POP3 zestawiając połączenie po SSL będą dostawać poniższe okno informujące o niezgodności nazw.
Rysunek 14. Komunikat niezgodności nazwy w certyfikacie
Przechwycona komunikacja jeszcze na fazie uzgadniania sesji SSL. Jak widać nie zgadza się common-name.
Rysunek 15. Przechwycony ruch negocjacji sesji SSL dla POP
Aby podstawić certyfikat wildcard należy skorzystać z polecenia Set-PopSettings.
Rysunek 15. Zmiana mapowania nazwy certyfikatu dla usługi POP
Jako nazwę certyfikat należy podać dowolną nazwę z danej domeny – tak, która nie pasuje do żadnej z nazw zawartych w certyfikacie typu SAN. Który również mógłby być przez exchange podstawiony.
Teraz Exchange próbując dopasować nazwę, do której zestawimy połączenie SSL wybierze certyfikat wildcard, ponieważ on pokrywa wszystkie nazwy dla danej domeny.
Rysunek 16. Uaktualniona konfiguracja usługi POP
Rysunek 17. Dopasowany certyfikat wildcard do sesji SSL
Teraz już klienci POP po SSL nie będą generować komunikatu błędu, a tym samym certyfikatem SSL (typu Wildcard) , będzie można obsłużyć usługi IIS, SMTP, POP3 oraz IMAP4.