Free SSL certifikát
Administrace Exchange serveru - 35. část
Jak vytvořit zdarma důvěryhodný SSL certifikát a nasadit na Exchange (1/3)    

Vítám vás u dalšího dílu administrace Exchange serveru 2010. Pokud jste četli předchozí díly seriálu, tak vás musím připravit na to, že tento díl bude mnohem náročnější než cokoliv, co jsme tu zatím měli. Bezpečnost je něco, co administrátoři berou jako nutné zlo. Není se čemu divit. Kdybychom nepotřebovali komplikované zabezpečení, tak by spousta funkcí byla lehce nastavitelná a spravovatelná. Teprve bezpečnost ze spousty věcí dělá noční můru. To, co se dneska chystám ukazovat, bude vyžadovat i hodně teorie. Pokud budete chtít nastavovat svůj server podle tohoto článku, tak čtěte opravdu pozorně. Jedna informace, kterou přehlédnete, může o tři odstavce dál způsobit velké komplikace. Minimálně ve dvou starších článcích jsem ukazoval, jak vygenerovat self signed certifikát. Tak tu máme hned na začátek teorii o vydávání certifikátů. Pokusím se to zjednodušit, takže zkušenější administrátoři neberte všechno úplně doslova. Jdeme na to.

První otázka, která vás může napadnout, je, proč vlastně používat nějaké SSL, když je to tak komplikované. SSL certifikát je nutnost, abychom mohli používat HTTPS místo HTTP. Jinak řečeno, abychom mohli používat šifrované spojení místo čistě textového (otevřeného, plain text, jak to chcete nazvat, je jedno). V nešifrované podobě může útočník bez problémů prohlížet, co leze v komunikaci, včetně uživatelských jmen a hesel. A to asi nikdo nechce. Takže nikdo, kdo má nějaký pud sebezáchovy, takhle nebude Exchange provozovat.

Fajn, tak budeme šifrovat. K tomu potřebujeme SSL certifikát. Jak můžu něco takového získat a co to pro mě znamená? Jak jsem psal dřív, tak nejjednodušší je vytvoření self signed certifikátu. Pak můžeme mít vlastní certifikační autoritu, kterou si můžeme vydat certifikát. A třetí možnost, která mě napadá, je získat certifikát od komerční certifikační autority. Začněme od konce. Co je to certifikační autorita a jakou mám vybrat? Certifikační autorita (CA) je v principu organizace, která je schopna vydat vám certifikát určitého typu. Ne každá taková CA je pro nás vhodná. Z pohledu zákona je můžeme rozdělit na komerční a kvalifikované. Kvalifikovaná CA je taková, kterou zákon v zemi uznává pro určitý typ akce - většinou vydání elektronického podpisu pro komunikaci se státními institucemi. Přehled takových CA v ČR a služeb, které mohou ze zákona jako kvalifikované provádět, najedete zde: http://www.mvcr.cz/clanek/prehled-kvalifikovanych-poskytovatelu-certifikacnich-sluzeb-a-jejich-kvalifikovanych-sluzeb.aspx. Komerční jsou ty ostatní, které můžete využít pro služby, které nejsou upravovány zákonem. Můžete využít i ty kvalifikované, ale není to vždy vhodné. To souvisí právě s druhým rozdělením. A to by se dalo nazvat možná technologickým rozdělením na důvěryhodné a nedůvěryhodné. Různé systémy si udržují seznam CA, které považují za důvěryhodné. Takže Microsoft udržuje seznam CA, kterým OS Windows a některé programy Microsoftu za splnění dalších podmínek automaticky důvěřují. Například Firefox si udržuje vlastní seznam takových autorit. Linuxové distribuce zase mají svoje. Různé mobilní telefony také. Takže to není úplně legrace. No a zrovna třeba naše kvalifikované CA, na které jsem dával odkaz výše, jsou z pohledu MS nedůvěryhodné. Pěkná schizofrenie. Zákon je chce, systém ne. Naštěstí je možnost, jak s tím pohnout, ale to teď nebudeme řešit.

Jak kdo pozná, jaký mám vlastně certifikát a co to vůbec je certifikát? Certifikát je prakticky pár malých souborů. Mluvíme o privátním klíči, který nesmíme dát z ruky - ten je určen k podpisu "čehokoliv" a dešifrování věcí, které byly zašifrovány naším veřejným klíčem a pak taky mluvíme o veřejném klíči, kterým zase můžeme šifrovat věci určené osobě, která má správný privátní klíč a kterým (tím veřejným klíčem) můžeme ověřit platnost podpisu vytvořeného privátním klíčem. (Takhle to funguje při vzájemném posílání zpráv. Osoby si vymění veřejné klíče a můžou začít.) Ono je to trošku složitější, ale to teď neřešme. Nevíc se necítím být dostatečně kvalifikovaný pro tuto oblast. Pro nás je ale důležité, že certifikát, který si koupíme u nějaké CA, je podepsaný touto CA. To je to podstatné. Pokud máte veřejný klíč této CA umístěný v případě Windows v Trusted CAs, tak je to považováno za certifikát od důvěryhodné CA a pokud jsou splněny další podmínky, tak to bude fungovat. (O těch podmínkách si ještě řekneme.) Nejlepší je teda koupit si certifikát u CA, která je důvěryhodná v mnoha systémech - ve Windows, Linuxu, mobilních zařízeních, atd. Tím se nám výběr zúží.

OK, ale co když máme vlastní CA v naší AD infrastruktuře? To je vlastně normální komerční CA. Během instalace se systém postará, aby veřejný klíč této CA byl distribuován na všechny stroje v AD. Tím pádem bude certifikát důvěryhodný pro všechny počítače v AD. Ale bude nedůvěryhodný pro stroje mimo - SMTP servery, mobilní zařízení s Active Sync. Můj osobní názor, který nikomu vnucovat nebudu, je, že pokud potřebujete pouze certifikát pro Exchange, tak vlastní CA je kanón na vrabce a naděláte si víc problémů, než to může přinést. Řekl jsem, že ten názor nebudu vnucovat, ale přece jen. Dostávám spoustu dotazů, jak co udělat na Exchange serveru. Jak vyřešit nějaký problém. Snažím se pomoct. Ale pokud někdo zprovozní vlastní CA a pak se zamotá do certifikátů, tak mi ani nepište. Moje odpověď bude, že jsem vás varoval. Fakt to nestojí za to, pokud tu CA nepotřebujete k něčemu jinému. Ale ani tak bych ji nepoužil.

A kam vlastně patří Self Signed certifikát? No v případě komerčních CA dostanete certifikát, který je podepsaný tou CA, která jej vydala, aby bylo možné ověřit platnost. V případě vlastní CA je podepsaný certifikátem vaší CA. V případě self signed certifikátu vytvoříte certifikát, kterým jej i podepíšete. :-) Je jasné, že ten certifikát nebude vůbec nikde důvěryhodný, ale v rámci AD je možné distribuovat veřejný klíč na všechny stroje, takže vlastně docílíte téhož, jako v případě vlastní CA, ale bez nežádoucích účinků instalace vlastní CA. Pro většinu malých firem bude tohle řešení plně dostatečné. Je to zdarma a umožní vám to cokoliv.

Tak proč bych vlastně chtěl mít certifikát od komerční CA? Třeba proto, že máte 10 000 uživatelů, kteří používají mobilní zařízení a OWA. A při nastavení mobilního zařízení jim to bude ječet, že certifikát není důvěryhodný a oni budou volat na Helpdesk a i když jste udělali před půlrokem návod, který dostali a který popisuje, že je to naprosto v pořádku a co mají dělat, tak stejně budou volat a otravovat. A pak někde pustí OWA na stroji mimo doménu a prohlížeč začne ječet, že zabránil bezpečnostnímu riziku a máme tu kolotoč znovu. A nebo chcete napsat článek o tom, jak se to dělá a tak to na sobě vyzkoušíte a odchytáte chyby. Případně chcete zamachrovat před kolegy administrátory. Důvod se vždycky najde. Takže radši koupíte komerční certifikát. V případě takového množství uživatelů to asi vůbec nebudete řešit a ty peníze dáte, ale je tu i možnost, jak získat důvěryhodný komerční certifikát zdarma. Má určitá omezení. Může být vystaven pouze na jedno jméno serveru a doménové jméno. Já budu ukazovat generování certifikátu pro mail.jan-kovar.cz a jan-kovar.cz. Ty certifikáty ve skutečnosti nepoužiju, protože už mám delší dobu vygenerované certifikáty na jiná jména a ty používám. Ale postup se lišit nebude. Ale říkám to hned, abyste se nedivili, že nastavuju Exchange pro jiná jména. Ukážeme si postup, jak to jde udělat u CA StartCom. POZOR! Certifikát je zdarma, ale zrušení certifikátu už zdarma není. Jestli něco pokazíte, tak vám to nedovolí vygenerovat znovu certifikát na jméno, které už jste použili. A revokace vás vyjde na přibližně 500 Kč.

Co budeme potřebovat? V minulém článku jsem psal, že je nutné, abychom měli Exchange server dostupný pod stejným jménem v DNS jak z venku, tak ve vnitřní síti - například posta.firma.cz. Bez toho to prostě nebude fungovat. Pak si musíme říct, u jakých služeb budeme chtít používat šifrované spojení. U webových služeb to bereme jako samozřejmost, ale i tady si musíme říct, co všechno nám tu poběží - OWA, ECP, Outlook anywhere, OAB, EWS, Active Sync, Autodiscover. A to bude chtít nastavit virtuální adresáře IIS a trochu poladit Autodiscover. O tom si řekneme víc později. Potom můžeme SSL resp. TLS nasadit pro SMTP spojení. Záleží na tom, jestli používáme smart host nebo Exchange přijímá poštu přímo a odesílá přímo. Pokud je Exchange přímo dostupný z Internetu, tak je to určitě vhodné. No a pak tu máme služby jako je POP3 nebo IMAP, resp. jejich varianty POP3s a IMAPs. Doufám, že už nikdo nemáte důvod tyhle služby používat. Tak se o nich zmíním jen okrajově.

Mno, někde výš jsem se několikrát zmínil, že certifikát je důvěryhodný, pokud splňuje určité podmínky. První takovou podmínkou pro důvěryhodnost certifikátu je jeho platnost. Certifikát má omezenou dobu platnosti. My budeme mít certifikát na rok a certifikát má v sobě tuto informaci, takže pokud se někdo připojí po době platnosti, tak už mu to napíše, že je nedůvěryhodný. Totéž nastane, když si někdo omylem posune čas/datum na dobu před začátkem platnosti certifikátu - stává se při hard resetu mobilního zařízení. To certifikát nebude ještě platný. Druhou podmínkou je, že se musíte připojovat na jméno, které je uvedeno v certifikátu. Nemusí to být nutně FQDN toho stroje. Můžu mít třeba AD doménu se jménem domena.local a jméno stroje v ní bude server01. To nehraje roli. Pokud jsem vlastníkem DNS domény například firma.cz, vytvořím v ní A záznam na stroj posta.firma.cz a ten bude směřovat na IP adresu toho serveru a vygeneruju SSL certifikát pro jméno posta.firma.cz, tak je všechno v pořádku. Ale uživatelé se musí vždy připojovat na posta.firma.cz. Pokud někdo ve vnitřní síti napíše adresu server01.domena.local, tak se k serveru připojí, ale bude mu to ječet, že certifikát není platný. Takže ještě jednou a tučně: Vždy dělám certifikát na jméno, které chci použít pro připojení.

A teď ten nešťastný autodiscover. Pokud bychom kupovali certifikát, tak bychom koupili SAN certifikát (SAN = subject alternate names) neboli certifikát, který by umožňoval zadat do něj více jmen, která jsou platná. Například bychom řekli, že server má všechna tato jména: server01.domena.local, posta.firma.cz, autodiscover.domena.local, autodiscover.firma.cz, webmail.firma.cz, firma.cz. Tím by se nám konfigurace dost zjednodušila, teda nezjednodušila, ale ušetřili bychom si práci. A hlavně plánování. A já bych si ušetřil psaní teorie, jak funguje autodiscover. No co už ... Takže všichni víte, že autodiscover slouží k automatickému nastavení Outlooku (2007, 2010, 2013) pro připojení k Exchange serveru. I když outlook nastavíte ručně, tak bude občas kontaktovat autodiscover a klidně vám přenastaví to, co jste zadali ručně. :-) Otázka je, jak ví, kde má najít autodiscover. No, pokud je stroj v doméně a uživatel je přihlášený doménovým účtem, tak to zjistí z tzv. Service Connection Pointu (SCP). Ten se vytvoří při instalaci CAS role a i v konfiguraci CASu se dá změnit. Zatím plánujeme, takže následující příkaz nám napíše, co tam máme teď nastaveno. Připomínám, že někdo může mít víc Exchange serverů, proto zjišťuju i jméno:

Get-ClientAccessServer | fl name, AutoDiscoverServiceInternalUri

V našem případě bychom tam potřebovali mít posta.firma.cz.

A co když stroj není členem domény nebo je zrovna mimo lokální síť? Jak najde autodiscover? Outlook postupně zkouší najít autodiscover v tomto pořadí:

- https://firma.cz/autodiscover/autodiscover.xml
- https://autodiscover.firma.cz/autodiscover/autodiscover.xml
- Hledá speciální SRV record v DNS, který řekne, na jaké adrese se autodiscover nachází. Nefunguje ve všech zařízeních.

Pokud autodiscover najde, tak pomocí autodiscoveru se ptá na adresy služeb, které chce použít - například na nastavení Outlook anywhere. Nebo na adresu OAB. A autodiscover pošle adresu, která je nastavena u virtuálního adresaře služby. Takže ty budeme muset taky nastavit. Jeden příklad: OAB

Get-OabVirtualDirectory | fl identity, InternalURL, ExternalURL

Všude budeme muset nastavit posta.firma.cz, aby to fungovalo.

Než se pustíme do vygenerování certifikátu, tak si připravte Váš Exchange, aby byl schopný přijmout poštu, která přijde na adresu postmaster@vasedomena.cz, v mém případě tedy postmaster@jan-kovar.cz. Máme dvě možnosti, jak vygenerovat certifikát. Můžeme na Exchange serveru udělat request a ten použít nebo můžeme všechno udělat pomocí nástrojů Startcomu. Já budu ukazovat ten druhý postup. První by měl smysl, kdybychom kupovali certifikát a chtěli použít více jmen. To u free certifikátu nepůjde, tak se s tím nebudeme zdržovat.

A protože nechci, aby se článek zbytečně natáhl, tak ho tady ukončím. Máte o čem přemýšlet a já dám zatím dohromady praktickou část s obrázky.

Poslední aktualizace - Neděle, 6. Ledna 2013 17:38
 
 
 
Page 1 of 1
© TNX alias Jan Kovář. Původní design stránky byl určen pro CMS Joomla! a vytvořen společností Siteground web hosting