Modul 3 · 3.1
Slovenčina
https a certifikát
Modul 3: Adresa, https a používatelia · Čas čítania: 8 minút
Cieľ lekcie: Po tejto lekcii dokážete prepnúť WordPress stránku kompletne na https a budete vedieť, čo robí WordPress-adresa a adresa stránky.
Kľúčové pojmy: TLS, certifikát, Let's Encrypt, automatické predĺženie, WordPress-adresa (siteurl), adresa stránky (home), WP_HOME a WP_SITEURL, HSTS, zablokovanie prístupu
Čo robí https
S https je všetka komunikácia medzi prehliadačom a serverom šifrovaná: heslá, formuláre, cookies, ale aj bežné stránky. Bez https môže ktokoľvek na rovnakej sieti (verejná wifi, napadnutý router) komunikáciu čítať a dokonca aj meniť obsah stránky. Prehliadače zobrazujú stránku bez https ako „nezabezpečenú“ a niektoré funkcie (napríklad poloha alebo kamera) fungujú iba s https.
Šifrovanie sa nazýva TLS. Aby sa dokázalo, že prehliadač naozaj komunikuje s example.com a nie s prostredníkom, má server certifikát: digitálny doklad, podpísaný vydavateľom, ktorému prehliadače dôverujú. Certifikát uvádza názvy, pre ktoré platí, a dokedy platí.
Bezplatné certifikáty a predlžovanie
Let's Encrypt vydáva bezplatné certifikáty. Takmer každý poskytovateľ hostingu ich automaticky žiada a aj automaticky predlžuje. Certifikát od Let's Encrypt je momentálne platný 90 dní a Let's Encrypt oznámil, že túto platnosť bude postupne skracovať až na 45 dní. Ručné predlžovanie preto nie je možnosť: musí prebiehať automaticky.
Platený certifikát nešifruje lepšie. Rozdiel je v dodatočnej kontrole organizácie (a niekedy v záruke). Pre väčšinu webových stránok je bezplatný certifikát úplne postačujúci.
Na čo si dať pozor:
- Certifikát musí pokrývať každý názov, ktorý môže návštevník zadať:
example.comajwww.example.com. Aj názov, ktorý len presmerováva, pretože prehliadač kontroluje certifikát ešte pred presmerovaním. - Automatické predĺženie funguje len vtedy, ak DNS smeruje na váš server. Ak ste presunuli DNS alebo ste pred server umiestnili proxy (napríklad Cloudflare), skontrolujte, či predlžovanie stále funguje.
- CAA záznam v DNS môže určiť, ktorí vydavatelia smú certifikáty vytvárať. Ak tam Let's Encrypt nie je uvedený, žiadosť zlyhá (lekcia DNS kurzu 5.2).
Dve adresy vo WordPresse
V časti Nastavenia > Všeobecné sa nachádzajú dve adresy. Pôsobia zbytočne duplicitne, no znamenajú niečo iné:
| Pole | V databáze | Význam |
|---|---|---|
| WordPress-adresa (URL) | siteurl | Kde sa nachádzajú súbory WordPressu (wp-admin, wp-includes) |
| Adresa stránky (URL) | home | Adresa, ktorú používajú návštevníci |
Väčšinou sú rovnaké, napríklad obidve https://example.com. Líšia sa iba vtedy, keď je WordPress nainštalovaný v podpriečinku, ale stránka sa má zobrazovať na hlavnej adrese.
WordPress na základe týchto adries vytvára všetky odkazy: na stránky, štýly, obrázky, administráciu. Ak je tu uvedené http://, WordPress vytvára stránky s odkazmi na http://, aj keď návštevník prichádza cez https. To spôsobuje zmiešaný obsah (lekcia 3.2) a presmerovania tam a späť.
Ako prepnúť stránku na https
Ak máte existujúcu stránku na http, postupujte takto:
- Požiadajte o certifikát pre obidva názvy a skontrolujte, či
https://example.comfunguje (uvidíte WordPress stránku, možno ešte bez formátovania). - Vytvorte zálohu (lekcia 8.1).
- Nastavte obidve adresy v Nastavenia > Všeobecné na
https://a uložte. Budete odhlásení; prihláste sa znova cez https. - Prepíšte staré odkazy v obsahu z
http://example.comnahttps://example.com. Urobte to pomocou nástroja, ktorý rozumie serializovaným údajom, ako jewp search-replacealebo plugin na vyhľadávanie a nahrádzanie (lekcia 3.2), nikdy jednoduchým SQL príkazom. - Presmerovanie: nastavte webový server tak, aby všetky požiadavky na http presmeroval kódom 301 na https (lekcia 3.2). Mnohí poskytovatelia hostingu na to majú jednoduché zaškrtávacie pole; inak stačí pár riadkov v
.htaccess. - Skontrolujte výsledok pomocou úlohy z tejto lekcie a z lekcie 3.2.
Zablokovaný prístup: keď je adresa nesprávna
Ak pri adresách urobíte preklep (htps://, nesprávna doména), WordPress vás po uložení presmeruje na túto nesprávnu adresu. Do administrácie sa už nedostanete. Nepanikárte, existujú dve riešenia:
Cez wp-config.php. Vložte nad riadok „zastavte úpravy“:
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );Tieto riadky majú prednosť pred hodnotami v databáze. Polia v Nastavenia > Všeobecné budú potom sivé. Prihláste sa, nastavte v databáze správne hodnoty a riadky znova odstráňte (alebo ich zámerne ponechajte, vtedy nikto nemôže adresy omylom zmeniť cez administráciu).
Cez phpMyAdmin. Otvorte tabuľku wp_options a upravte hodnoty siteurl a home.
HSTS: aby si to prehliadač zapamätal
Pomocou hlavičky HSTS (Strict-Transport-Security) server povie prehliadaču: „najbližší čas sem choď iba cez https.“ Prehliadač potom sám prevedie každé http:// na https:// bez toho, aby najprv poslal nezabezpečenú požiadavku.
Strict-Transport-Security: max-age=31536000; includeSubDomainsHSTS je dobrý doplnkový krok, ale s upozornením: prehliadač, ktorý už HSTS videl, potom odmietne otvoriť stránku bez platného certifikátu, a to ani cez možnosť „pokračovať aj tak“. S includeSubDomains to platí pre každú subdoménu. Ak máte subdoménu bez certifikátu (napríklad starý interný systém), bude po nastavení HSTS nedostupná. Začnite preto s krátkou hodnotou max-age (napríklad jeden deň, 86400), všetko skontrolujte a potom hodnotu predĺžte.
V praxi: ako to vyzerá v paneli
Ako príklad používame DirectAdmin. V cPaneli sa táto časť volá SSL/TLS Status (AutoSSL), v Plesku SSL/TLS Certificates.
- Otvorte SSL certifikáty pri vašej doméne a vyberte Bezplatný a automatický certifikát od Let's Encrypt.
- Začiarknite
example.comawww.example.coma požiadajte o certifikát. - V nastaveniach domény zapnite možnosť vždy presmerovať návštevníkov na https (v DirectAdmin: Vynútiť SSL s https presmerovaním). Používajte iba jeden spôsob presmerovania: dva rôzne naraz môžu spôsobiť kolotoč presmerovaní („príliš veľa presmerovaní“).
- Vo WordPresse prejdite do Nastavenia > Všeobecné a nastavte obidve adresy na
https://.
Zhrnutie
- https šifruje všetko medzi prehliadačom a serverom; certifikát dokazuje, kto je server.
- Bezplatné certifikáty od Let's Encrypt majú krátku platnosť a predlžujú sa automaticky; musia pokrývať každý názov, ktorý návštevník zadá.
- WordPress-adresa (siteurl) aj adresa stránky (home) musia byť obidve nastavené na
https://. - Ak ste si zablokovali prístup kvôli nesprávnej adrese, opravte to pomocou WP_HOME a WP_SITEURL v wp-config.php alebo v phpMyAdmin.
- HSTS je dobrý doplnkový krok; začnite s krátkou platnosťou.
Kvíz
Úloha
Úloha A3.1: Je váš certifikát v poriadku? Zadajte adresu vašej stránky. Program vytvorí TLS spojenie s názvom bez www aj s www (ak existuje) a skontroluje: je certifikát platný a dôveryhodný, pokrýva obidva názvy, je platný ešte viac ako 14 dní a posiela stránka hlavičku HSTS? Ak HSTS chýba, zobrazí sa to oranžovo s vysvetlením, nie ako chyba.
Ďalšie čítanie
Tieto články popisujú kroky v paneloch WebOké; v iných paneloch fungujú podobne.
- Návod na DirectAdmin 6.1: Čo je SSL a ako sa oň stará WebOké?
- Návod na DirectAdmin 6.2: Bezplatný certifikát Let's Encrypt požiadať
- Návod na DirectAdmin 6.3: Certifikát pre www, subdomény a zástupný záznam
- Návod na DirectAdmin 6.4: Návštevníkov vždy presmerovať na https
- Aktivácia a obnovenie SSL certifikátu, riešenie problémov
- Rozdiel medzi bezplatným a plateným certifikátom
- Bezplatný kurz DNS 5.2: CAA: kto smie vydávať certifikáty?
