SSL certifikát: ako zistiť, či ho máte naozaj v poriadku
Otvoríte si svoj web, v adresnom riadku svieti zámok, všetko vyzerá v poriadku. Lenže zámok hovorí jedinú vec: toto konkrétne spojenie, na tejto konkrétnej adrese, je práve teraz šifrované. Nič viac. O tom, či máte HTTPS nastavené poriadne, nevypovedá takmer nič.
Tu sú štyri veci, ktoré v praxi zlyhávajú aj na weboch so zámkom. (Ak hľadáte skôr základy – čo SSL certifikát vlastne je a prečo ho web potrebuje – vysvetľujeme to v príručke: HTTPS a SSL certifikát.)
1. Certifikát nepokrýva holú doménu
Najzákernejšia z celej štvorice. Certifikát je vystavený na www.vasadomena.sk, ale
už nie na vasadomena.sk. Vy máte web v záložkách s „www", takže vám všetko funguje.
Zákazník, ktorý do prehliadača napíše doménu bez „www", dostane bezpečnostné varovanie
na celú obrazovku.
A teraz to, čo väčšinu ľudí prekvapí: presmerovanie vás nezachráni. Býva to prvá reakcia – „veď mám presmerovanie z holej domény na www". Lenže certifikát sa overuje pri nadväzovaní šifrovaného spojenia, teda skôr, než server stihne povedať čokoľvek o presmerovaní. Prehliadač zakričí ešte predtým, ako sa k presmerovaniu vôbec dostane.
Riešenie je našťastie jednoduché: certifikát má pokrývať obe mená naraz. Let's Encrypt to zvládne v jednom certifikáte, netreba dva.
2. Web beží aj cez http:// bez presmerovania
HTTPS máte, ale stará nešifrovaná verzia ostala dostupná vedľa nej. Kto príde cez starý odkaz
alebo zadá adresu ručne, ostane na http:// – a všetko, čo tam vyplní, ide po sieti
čitateľné. Overíte to jedným príkazom:
curl -sI http://vasadomena.sk | head -1
Chcete vidieť 301 (trvalé presmerovanie). Ak sa vráti 200, presmerovanie
chýba a web beží na oboch adresách súčasne. Okrem bezpečnosti to škodí aj SEO – vyhľadávač vidí
dve verzie toho istého obsahu.
3. Zmiešaný obsah
Stránka sa načíta cez HTTPS, ale niektorý obrázok, skript alebo štýl na nej visí ešte na starej
http:// adrese. Prehliadač takú vec buď rovno zablokuje (a časť stránky sa nezobrazí),
alebo zámok degraduje. Stáva sa to typicky po prechode na HTTPS, keď v databáze ostanú staré
absolútne adresy v článkoch.
Zradné je, že si to nemusíte všimnúť – chýbajúci obrázok v pätke alebo nefunkčný formulár na jednej podstránke ľahko prehliadnete.
4. Certifikát ticho vyprší
Certifikáty od Let's Encrypt platia 90 dní a obnovujú sa automaticky. Až kým sa obnova raz nepokazí – zmení sa konfigurácia, presunie sa web, prestane bežať plánovaná úloha. Obnova zlyháva potichu, nikto nič nevidí, a po pár týždňoch web zo dňa na deň zobrazí varovanie všetkým návštevníkom.
Presne to je dôvod, prečo má zmysel dátum expirácie sledovať, nie naň spoliehať. Stav certifikátu si pozriete aj ručne:
echo | openssl s_client -servername vasadomena.sk -connect vasadomena.sk:443 2>/dev/null \
| openssl x509 -noout -subject -dates
Vo výpise vás zaujíma notAfter (dokedy platí) a subject spolu
s alternatívnymi menami – tam sa ukáže aj problém číslo 1.
Ako si to overiť naraz
Ak sa vám do príkazového riadka nechce, bezplatná kontrola webu preverí všetky štyri veci naraz: či web beží cez HTTPS, či presmerováva, či certifikát pokrýva aj holú doménu, dokedy platí a či na stránkach nie je zmiešaný obsah. Je to súčasť širšieho overenia zdravia webu.
Čo si z toho odniesť
Zámok nie je potvrdenie, že je všetko v poriadku – je to len informácia o jednom spojení. Tri z tých štyroch problémov pritom nevidíte zo svojho prehliadača: holú doménu si nenapíšete, starý http odkaz nepoužijete a expirácia príde o mesiace neskôr. Práve preto ide o veci, ktoré sa oplatí kontrolovať pravidelne a automaticky – priebežný dohľad na ne upozorní skôr, než na ne narazí zákazník.
A keď už budete pri tom: skóre z kontroly sa oplatí vedieť aj správne prečítať – ako čítať skóre zdravia webu.