Ako mnohí viete, používanie SSL certifikátu na svojom webe má viacero výhod. Slúži najmä na šifrovanie komunikácie medzi zariadeniami vašich návštevníkov a našimi servermi, aby sa dáta klientov nedostali do nesprávnych rúk, čo je neoceniteľné najmä v prípade e-shopov.
Od augusta minulého roka majú tiež weby s certifikátom plusové body pri vyhľadávaní cez Google, ktorý je tvorcom iniciatívy “HTTPS Everywhere”. Jej cieľom je, aby na internete aj mimo neho neexistovali komunikačné linky bez šifrovania. Po udalostiach z roku 2013 sa prísnemu prístupu Googlu nemožno čudovať.
Napokon, SSL certifikát je nutnosťou pre prehliadanie stránok protokolom HTTP/2, ktorého cieľom je najmä rýchlejšie načítavanie webov. Toto dosahuje rôznymi technikami – multiplexovaním viacerých HTTP požiadaviek v jednom spojení, kompresiou HTTP hlavičiek alebo prioritizáciou požiadaviek. Protokol je podporovaný všetkými známymi prehliadačmi a rozdiel v rýchlosti načítavania môžete otestovať aj Vy. V našom prostredí dosahoval najlepšie výsledky Google Chrome.
Až donedávna bol však SSL certifikát skôr privilégiom ako samozrejmosťou, za čo mohla najmä jeho cena. U nás ste si mohli objednať SSL pre jednu doménu za 50 eur ročne bez DPH, no špeciálne typy certifikátov (označované ako Platinum alebo Elite) sa môžu ľahko vyšplhať cez 250 eur. Situáciu zmenila skupina ISRG, stojaca za projektom Let’s Encrypt, ktorého poslaním je naplniť víziu “HTTPS Everywhere”. Okrem vydávania bezplatných SSL certifikátov je ich snahou čo najviac zautomatizovať proces ich vytvárania a odvolávania, čím oslovili skôr poskytovateľov hostingu ako koncových majiteľov webstránok.
Ďakujeme, že sledujete náš nový technologický kanál @websupport_tech
— WebSupport Tech (@websupport_tech) 2. května 2016
Vďaka Let’s Encrypt môžete mať SSL certifikát pre ľubovoľnú doménu alebo subdoménu úplne zdarma a do niekoľkých sekúnd. Certifikáty sú podpisované uznávanou autoritou, takže zobrazia “zelený zámoček” v 99% prípadov. Na rozdiel od spoplatnených certifikátov sú tie od Let’s Encrypt platné iba 3 mesiace (po tejto dobe sa u nás certifikát automaticky obnoví) a nie je možné vystaviť “wildcard”. To však vo väčšine prípadov nie je problém – jednoducho si môžete vyklikať tie subdomény, na ktorých sa HTTPS bude používať.
Odporúčame pozrieť sa aj na niektoré zaujímavé štatistiky ohľadom vydaných certifikátov. V dobe písania článku tvorili .sk domény takmer 2% všetkých vydaných certifikátov. 🙂
Príprava na zmeny
Nasadenie podpory Let’s Encrypt nebolo triviálnou úlohou. Museli sme vytvoriť škálovateľný a spoľahlivý nástroj, ktorý sa stará o automatizovanie celého procesu od požiadavky na vydanie certifikátu až po jeho nasadenie na webserver. Do niekoľkých týždňov od začiatku beta-testov bude táto možnosť prístupná každému klientovi.
Ďalšou výzvou, na ktorú upozornil jeden zo senior adminov, boli systémové požiadavky takéhoto riešenia. Na čele našej infraštruktúry totiž stoja loadbalancery, ktoré musia byť zo svojej definície bezstavové – ak pošlete rovnakú požiadavku na ktorýkoľvek z nich, musíte dostať rovnakú odpoveď. Z toho dôvodu musia byť na každom z nich dostupné všetky SSL certifikáty všetkých domén.
V rádoch stoviek až jednotiek tisícov certifikátov je situácia udržateľná, aj keď nie veľmi príjemná – procesy webservera (v našom prípade Nginx) bežne zaberali okolo 900 MB RAM kvôli takmer 2000 certifikátom. Tie si webserver načítal zo súborov pri každom štarte, ktorý z tohto dôvodu trval niekoľko sekúnd. Čo sa však stane, ak bude certifikátov omnoho viac? Ak by len desatina všetkých domén a subdomén začala používať SSL certifikát, ich počet by presiahol 30 000. Radšej ani nechceme vedieť, aký vplyv by táto situácia mala na loadbalancery. 🙂
Pustili sme sa teda do práce na kóde, ktorý by dynamicky načítaval SSL certifikáty do pamäte Nginx-u až pri prvej návšteve stránky. Samozrejme, ani prvý prístup k certifikátu nesmie trvať dlho, preto sú uložené v lokálnej inštancii Redisu. Pozorný čitateľ môže namietnuť, že certifikáty sú takto predsa stále v RAM – čo je pravda, avšak “holý” certifikát zaberie cca 100x menej miesta, ako keď je aktívne načítaný v štruktúre webservera. Pamäť použitá webserverom sa teraz udržiava do 100 MB a jeho štart je takmer okamžitý.
Kód je napísaný v jazyku Lua, ktorý je vďaka úžasnej snahe viacerých developerov možné používať priamo v konfiguračných súboroch Nginx-u. Možnosť programatického načítavania SSL certifikátov pochádza z dielne Cloudflare, spoločnosti prevádzkujúcej CDN služby.
Vďaka týmto zmenám sme nemuseli nijak ovplyvňovať fyzickú stránku infraštruktúry. Naopak, výsledky sú veľmi priaznivé – sme pripravení poskytovať SSL certifikáty pre milióny domén a subdomén. Ďalším bonusom nového spôsobu načítavania SSL certifikátov je možnosť používať vlastný certifikát aj na webmail a webftp podstránkach (mail.domena.sk, webmail.domena.sk).
Veríme, že využijete možnosť zabezpečenia zdarma a certifikát si vytvoríte hneď, ako to bude možné. Let’s Encrypt je však ešte stále v beta verzii, preto platené SSL certifikáty poskytujú stále väčšie záruky 🙂
12 odpovedí na “Let’s Encrypt: SSL certifikát zadarmo pre každého”
dajte vedieť keď to pôjde
Ak si zadovážim cez websupport platený SSL certifikát, môžem potom neskôr prejsť na Let’s Encrypt ??
Pavol, isteze, ale preco by si to robil?
Dlhe roky pouzivam toto https://www.startssl.com/ ako free certifikaty na pre MTA a Apacche
Zaujimave, prednedavnom som komunikoval s vasim kolegom a pytal som sa ho ci planujete nasadit Let’s Encrypt. Ako odpoved som dostal „pffff… nie, nemame to v plane“. Tak vam gratulujem, uz som zacal robit kroky k presunu sluzieb inam. A nove domeny som uz registroval inde.
Vlado, nasadenie LE sme zamerne nekomunikovali vopred. Snazili sme hlavne o plynulu implementaciu a v den spustenia beta testu sme to oznamili na vsetkych dostupnych kanaloch.
dobre spravy, urcite vyskusam
Prečo by som to robil?:) Aby som po roku nemusel opäť za certifikát platiť a prešiel na Let’s Encrypt.. Nevyznám sa úplne do tejto problematiky, tak neviem…vysvetlite mi to prosím:) Aký je v tom rozdiel okrem platenia/neplatenia,hm? Zajtra pozajtra potrebujem vytvárať nový web,tak aby som to mal všetko OK.
@WebSupport Team: neviem co vam mam na to napisat a nebyt sarkasticky. Jedna vec je „neinformovat“ a druha je na moju opravnenu otazku dostat odpove ktora je „klamstvo“. Ok, vas sposob komunikacie so zakaznikom …
Ahojte, neskumali ste preco 2000 certifikatov zabera 900MB pamate? Ved to je skoro 0,5MB na certifikat? Nieje to nejaky bug v nginx?
[…] a my zbierame prvé ovocie našej práce. Menej dotazov na helpdesk, super rýchle pridanie podpory Let’s Encrypt, nové vychytávky, … . Veď pozrite sa sami na pár príkladov, rozdelených podľa […]
[…] dostupnosť bezpečnej komunikácie má aj bezplatná certifikačná autorita Let‘s Encrypt – tá je dostupná aj u nás a pre […]