Přechod na SSL aneb jakých chyb by jste se dopouštět neměli

Hodně se dnes mluví o bezpečnosti a o zabezpečení zadávaných informací na web, ať již před útočníky v podobě různých hackrů, znuzených studentíků ajťáků, tak i před výzvědnými službami, jako např. ochrana před CIA či NSA. Nedávno, při auditu zabezpečení ve firmě bylo rozhodnuto, že se musí zabezpečit pomocí SSL přístupy na důležité weby v rámci firmy a k tomu i subdomény, na kterých provozujeme demo internetového obchodu. Toto demo se vždy vytváří jako subdoména k demo.firma.cz, tedy například zidle.demo.firma.cz.

Úkol tedy zněl jasně. Zabezpečit firma.cz, ale zároveň i demo.firma.cz ale i např. prodejzidli.demo.firma.cz Jelikož počet subdomén je v tomto případě nekonečný, bylo nutno vytvořit tzv. wildcard certifikát. Pro pořádek jen připomenu druhy certifkátů, které pro zabezpečení webů existují:

standardní SSL certifikát
– je nejlevnější a zajišťuje ověřený certifikát pro jednu doménu, zde nutno připomenout, že doména domena.cz je něco jiného, než www.domena.cz. Pro zabezpečení obou domén je tedy zapotřebí dvou těchto standardních certifikátů

certifikát s podporou SAN

– jsou standardní certifikáty, ale je zde možnost na jeden certifikát mít zabezpečeno více domén (na webech se uvádí až 99, ale myslím, že je to neomezené)

– tento certifikát je pochopitelně o něco dražší i v závislosti na zvolené variantě počtu domén, na které se aplikuje

certifikát wildcard

– speciální druh certifikátu, který zabezpečuje jak doménu samotnou, tak i její subdomény. Doména se v tomto případě do certifikátu vkládá jako např: *.domena.cz

– hodí se na domény, u kterých vzniká mnoho subdomén a přesně nevíme jejich počet

Takže, jak jsem postupoval a jakých chyb jsem se dopustil?

Již nějakou dobu hlavní web firmy běžel na HTTPS pod svým vlatním certifikátem. Já jsem jej však chtěl rozšířit tak, aby fungoval i na ostatní subdomény. Proto jsem úplně na začátku musel vytvořit nový certifikát.

Na internetu je hodně obchodů nabízejících certifikáty, mě se líbily stránky ssls.cz, jelikož mají podporu mnoha certifikátů od pár stovek korun až do několika tisíců. Já si vybrál nějakej wildcard něco kolem tisícovky (ono je celkem jedno jaký, pokud vyloženě nechci mít zelený proužek v adresním řádku prohlížeče, to jsou pak za certifikáty vyšší sumy). Po nákupu je nutno přejít k výrobě takového certifikátu. Stránky jsou celkem přehledné a nabízejí jednoduché vytvoření privátního klíče a CSR žádost, který je potřebný pro žádost o podepsání certifikátu CA autoritou.

Již při vytváření těchto dvou klíčů je nutné zadat doménu, pro kterou se certifikát tvoří. Já tam dal “*.firma.cz”, tím jsem pevně doufal, že tím se certifikát bude používat i pro test.demo.firma.cz. No, ale o tom dále. Po podepsání certifikátu jsem vše zaslal na server hosting, a oni jej přidělili na stránku firma.cz a zároveň pro demo.firma.cz.

Vše tedy běhalo normálně, firma.cz běžela pod https, demo.firma.cz běžela pod https, ale když jsem přešel s prohlížečem na stránku test.demo.firma.cz tak mi vyběhla ta ošklivá stránka upozorňující mě na to, že mě zřejmě chce někdo hacknout a přihlásit mě na stránku, kterou systém nezná (však to znáte, takové to RADĚJI TO HNED ZAVŘI, BO PŘÍJDEŠ O DATA!!!!)

Chyba číslo 1. – nesprávné pochopení wildcard certifikátu:

Aha, a tady je kámen úrazu. Nikde jsem si totiž nepřečetl, že wildcard certifikát funguje pouze na přímé subdomény domény, na kterou je vystaven. Tedy na subdomény subdomény domény již nefunguje. Ono totiž všude se uvádí certifikát jako *.firma.cz a nějak logicky mi přislo, že je jedno kolik subdomén přidám za hvězdičku. Ale opak je pravdou.

No nic, moje chyba, měl jsem si zjistit více informací o tomto. No nevadí, na serveru uvádějí možnost vrácení peněz do 30 dnů, takže jsem je mailem požádal, aby certifikát zrušili a já si tak mohl vytvořit nový, s již správně zadanou doménou.

Chyba číslo 2. – certifikát zrušen bez náhradního:

Zrušení certifikátu proběhlo na mě až nezvykle rychle, což způsobilo, že firemní stránky přestaly fungovat. Je to celkem logické, najednou měly vypovězený certifikát a jiný tam nebyl. Oni totiž administrátoři serveru při zavádění nového certifikátu ten starý zrušili/smazali (což samozřejmě nebyla jejich chyba, prostě se domnívali, že již nebude potřeba). Asi Vám nemusím říkat, co se ve firmě dělo, když vypadla hlavní výloha firmy na webu. Najednou se všichni přiřítili, co se to jako děje, obchoďáci v terénu, co když se teď chlubí webem, co když zrovna teď nějaký zákazník brouzdá na firemním webu. NO PROSTĚ PRŮSER JAK MRAKY. Takže rychle, zavolat na serverhosting, poprosit je, ať tam ihned nahodí starý certifikát.


Chyba číslo 3. – někdy se vyplatí mít zalohované certifikáty na určitém místě:

Čekám, čeká, co tak dlouho na tom serveru dělají? Volám znovu, aha, oni ten starý certifikát hledají – v zálohách pry není. No dobře, jdu za kolegou, který jim před časem certifikát posílal. Kolega hledá v mailech, přeposílá nějaký privátní klíč, posílám webmasterům, čekám. Telefon, “Bohužel, ke klíči potřebujeme také certifikát, bez něho je nám privátní klíč na houby”. Aha, říkám si, vlastně jo. Jdu zase za kolegou, hledá v mailech vydané certifikáty, nějaké mi přeposílá, já posílám na server hosting a zase telefon: “klíče které jste poslal v mailu dříve se neshodují s vydaným certifikátem, který jste poslal nyní !!!!”. Kruci !!!! To už byla tak půlhodinka pryč, co firemní web pořád nejede. No dobře. Je třeba rázného řešení.

Chyba číslo 4. – přílišná horlivost se někdy nevyplácí

Jdu rychle na web pro nákup nového standardního certifikátu. Vybírám takový, u kterého uvádějí, že je automaticky s www i bez www. Ok, beru ho , platím, vytvářím klíče – do políčka pro doménu uvádím: “firma.cz”, vystavuji certifikát. Hmm, ale kde se zadává druhá doména? Tedy doména “www.firma.cz”? Nikde žádné políčko nevidím, asi to bude nějak automaticky…

Posílám webmasterum na hostingu a doufám, že jsem to stihl rychle, než zase někdo příjde, že web stále nejede. Zvoní telefon, na druhém konci zase webmaster: “Certifikát jsme na server instalovali, ovšem tento je určen jen pro doménu firma.cz, www.firma.cz nebude fungovat!!”. KRUCI!!!, Jak to, vždyť tam měli u nákupu napsáno, že bude fungovat i pro www…. No nic, není čas se zabývat drobnostma. Jdu zase rychle na web pro nákup již 3. certifikátu, vybírám stejný standardní certifikát, při vytváření klíčů pro doménu zadávám: www.firma.cz, vystavuji certifikát, posílám webmasterům a již se modlím, aby se web už konečně rozjel.

Blýská se na lepší časy:

Ok, hurá, web se rozjel, nyní již bez problému. Supr, nyní jsem měl konečně trochu času popřemýšlet, proč vlastně ten první (vlastně druhý) certifikát nefungoval pro www.firma.cz? S tímto dotazem se obracím emailem na stránky, kde jsem certifikát objednável. Odpověď přišla záhy, prý se musí do políčka uvést doména ve tvaru s WWW, poté se automaticky vystaví i pro bez WWW. Aha, ale proč to nemají nikde při výrobě certifikátu napsané? Asi proto, aby si lidé koupili certifikáty hned dva!!! No, teď už to vím, tak snad příště už to bude bez problému….

Po těchto zkušenostech musím konstatovat, že přidat šifrování na stránky není zas tak těžké, jen je třeba pamatovat na základní pravidla:

– wildcard certifikat (*.firma.cz) funguje pouze na první subdoménu, na ostatní v řadě již ne !!!!

– při zneplatňování certifikátu je nutné se postarat o to, aby stránky, které tento certifikát mají nainstalovaný, byly schopné provozu i bez něho!!!

– raději si někde bezpečně zalohovat vydané klíče a certifikáty, člověk nikdy neví, kdy je znovu bude potřebovat

– při vytváření standardního certifikátu zadat doménu ve tvaru “www.domena.cz”, automaticky se tak vytvoří certifikát i pro doménu “domena.cz”

– vše dělat pomalu s rozmyslem, při stresu vydá člověk, v mém případě, 2x více peněz za certifikáty, než je třeba

PS: firma.cz či domena.cz nejsou opravdové domény, jsou samozřejmě smyšlené a uvádím je zde jen jako příklad, ale to jste asi pochopili, tak jako by jste tohle PS nikdy nečetli, díky.