Modul 3 · 3.1
Https in certifikat
Modul 3: Naslov, https in uporabniki · Čas branja: 8 minut
Učni cilj: Po tej lekciji boste znali WordPress-spletno mesto v celoti preklopiti na https in boste vedeli, kaj počneta naslov WordPress in naslov spletnega mesta.
Ključni pojmi: TLS, certifikat, Let's Encrypt, samodejno podaljšanje, naslov WordPress (siteurl), naslov spletnega mesta (home), WP_HOME in WP_SITEURL, HSTS, izgon iz nadzorne plošče
Kaj počne https
S https je vse med brskalnikom in strežnikom šifrirano: gesla, obrazci, piškotki, tudi navadne strani. Brez https lahko vsak na istem omrežju (javni wifi, ugrabljen usmerjevalnik) bere vmesno komunikacijo in celo spreminja vsebino strani. Brskalniki spletno mesto brez https označijo kot »ni varno«, nekatere funkcije (na primer lokacija ali kamera) pa delujejo samo s https.
Šifriranju pravimo TLS. Da brskalnik dokaže, da res komunicira z domeno example.com in ne s posrednikom, ima strežnik certifikat: digitalno potrdilo, ki ga podpiše izdajatelj, ki mu brskalniki zaupajo. Certifikat navaja imena, za katera velja, in do kdaj.
Brezplačni certifikati in podaljševanje
Let's Encrypt izdaja brezplačne certifikate. Skoraj vsak ponudnik gostovanja jih samodejno zahteva in tudi samodejno podaljšuje. Certifikat Let's Encrypt je trenutno veljaven 90 dni, Let's Encrypt pa je napovedal, da bo to veljavnost postopoma skrajšal na 45 dni. Ročno podaljševanje zato ni možnost: podaljševanje mora potekati samodejno.
Plačljiv certifikat ne šifrira bolje. Razlika je v dodatnem preverjanju organizacije (včasih tudi v garanciji). Za večino spletnih mest je brezplačen certifikat povsem dovolj.
Na kaj morate biti pozorni:
- Certifikat mora pokrivati vsako ime, ki ga lahko obiskovalec vtipka:
example.cominwww.example.com. Tudi ime, ki samo preusmerja, saj brskalnik certifikat preveri pred preusmeritvijo. - Samodejno podaljšanje deluje samo, če DNS kaže na Vaš strežnik. Če ste DNS preselili ali pred njega postavili posredniški strežnik (proxy, na primer Cloudflare), preverite, ali podaljševanje še deluje.
- Zapis CAA v DNS lahko določi, kateri izdajatelji smejo izdajati certifikate. Če Let's Encrypt ni naveden, zahteva za certifikat ne uspe (lekcija 5.2 tečaja DNS).
Dva naslova v WordPressu
Pod Nastavitve > Splošno sta dva naslova. Na videz se zdita odveč podvojena, a pomenita nekaj drugega:
| Polje | V bazi podatkov | Pomen |
|---|---|---|
| Naslov WordPress (URL) | siteurl | Kje so shranjene datoteke WordPressa (wp-admin, wp-includes) |
| Naslov spletnega mesta (URL) | home | Naslov, ki ga uporabljajo obiskovalci |
Večinoma sta enaka, na primer oba https://example.com. Razlikujeta se le, kadar je WordPress nameščen v podmapi, spletno mesto pa se mora prikazati na glavni mapi.
S temi naslovi WordPress ustvarja vse povezave: do strani, slogovnih datotek (stylesheets), slik, do nadzorne plošče. Če je tu zapisan http://, WordPress ustvari strani s povezavami http://, tudi če obiskovalec prispe prek https. To povzroči mešano vsebino (lekcija 3.2) in preusmerjanje sem ter tja.
Prehod spletnega mesta na https
Če imate obstoječe spletno mesto na http, so to koraki:
- Zahtevajte certifikat za obe imeni in preverite, da
https://example.comdeluje (prikaže se Vam WordPress-stran, morda še brez oblikovanja). - Naredite varnostno kopijo (lekcija 8.1).
- Nastavite oba naslova pod Nastavitve > Splošno na
https://in shranite. Odjavljeni boste; znova se prijavite prek https. - Stare povezave v vsebini spremenite iz
http://example.comvhttps://example.com. To naredite z orodjem, ki razume serializirane podatke, na primerwp search-replaceali vtičnikom za iskanje in zamenjavo (lekcija 3.2), nikoli z golim ukazom SQL. - Preusmerite: nastavite spletni strežnik tako, da vse zahteve na http pošlje s kodo 301 na https (lekcija 3.2). Mnogi ponudniki gostovanja imajo za to kljukico; sicer nekaj vrstic v
.htaccess. - Preverite z nalogo iz te lekcije in iz lekcije 3.2.
Izgon iz nadzorne plošče: ko je naslov napačen
Če pri naslovih vtipkate tipkarsko napako (htps://, napačno domeno), Vas WordPress po shranjevanju pošlje na ta napačen naslov. Nadzorne plošče ne morete več doseči. Brez panike, obstajata dve rešitvi:
Prek wp-config.php. Nad vrstico »stop editing« dodajte:
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );Ti vrstici imata prednost pred vrednostmi v bazi podatkov. Polja pod Nastavitve > Splošno postanejo sivi. Prijavite se, v bazi podatkov nastavite pravilne vrednosti in vrstici znova odstranite (ali ju zavestno pustite, da nihče ne more po nesreči spremeniti naslovov prek nadzorne plošče).
Prek phpMyAdmin. Odprite tabelo wp_options in popravite vrednosti siteurl in home.
HSTS: naj si brskalnik zapomni
Z glavo HSTS (Strict-Transport-Security) strežnik brskalniku sporoči: »v naslednjem obdobju me obiskuj samo še prek https.« Brskalnik nato sam vsak http:// pretvori v https://, ne da bi najprej poslal nezavarovano zahtevo.
Strict-Transport-Security: max-age=31536000; includeSubDomainsHSTS je dober dodaten korak, vendar z opozorilom: brskalnik, ki je HSTS že zaznal, pozneje zavrne odprtje spletnega mesta brez veljavnega certifikata, tudi ne z možnostjo »vseeno nadaljuj«. Z includeSubDomains to velja za vsako poddomeno. Če imate poddomeno brez certifikata (na primer star notranji sistem), ta po vklopu HSTS ni več dosegljiva. Zato začnite s kratkim max-age (na primer en dan, 86400), vse preverite in šele nato podaljšajte.
V praksi: tako je videti v nadzorni plošči
Kot primer uporabljamo DirectAdmin. V cPanel se ta del imenuje SSL/TLS Status (AutoSSL), v Plesk SSL/TLS Certificates.
- Odprite SSL-certifikati pri Vaši domeni in izberite Brezplačen in samodejen certifikat Let's Encrypt.
- Označite
example.cominwww.example.comter zahtevajte certifikat. - V nastavitvah domene vklopite kljukico, da se obiskovalci vedno preusmerijo na https (pri DirectAdmin: Forceer SSL met https omleiding). Uporabite samo en način preusmerjanja: dva različna hkrati lahko povzročita krožno preusmeritev (»preveč preusmeritev«).
- V WordPressu odprite Nastavitve > Splošno in oba naslova nastavite na
https://.
Povzetek
- https šifrira vse med brskalnikom in strežnikom; certifikat dokazuje identiteto strežnika.
- Brezplačni certifikati Let's Encrypt veljajo kratek čas in se samodejno podaljšujejo; morajo pokrivati vsako ime, ki ga obiskovalec vtipka.
- Naslov WordPress (siteurl) in naslov spletnega mesta (home) morata biti oba nastavljena na
https://. - Če ste izgnani zaradi napačnega naslova, ga popravite z WP_HOME in WP_SITEURL v wp-config.php ali v phpMyAdmin.
- HSTS je dober dodaten korak; začnite s kratko veljavnostjo.
Kviz
Naloga
Naloga A3.1: Je Vaš certifikat pravilen? Vnesite naslov Vašega spletnega mesta. Program vzpostavi povezavo TLS z domeno brez www in z www (če obstaja) ter preveri: ali je certifikat veljaven in zaupanja vreden, ali pokriva obe imeni, ali velja še več kot 14 dni, in ali spletno mesto pošilja glavo HSTS? Če HSTS manjka, je to označeno oranžno z razlago, ne kot napaka.
Dodatno branje
Ti članki opisujejo korake v nadzornih ploščah WebOké; v drugih nadzornih ploščah delujejo podobno.
- Priročnik DirectAdmin 6.1: Kaj je SSL in kako ga ureja WebOké?
- Priročnik DirectAdmin 6.2: Zahteva brezplačnega potrdila Let's Encrypt
- Priročnik DirectAdmin 6.3: Certifikat za www, poddomene in nadomestni certifikat
- Priročnik DirectAdmin 6.4: Obiskovalce vedno preusmerite na https
- Aktiviranje, podaljšanje in odpravljanje težav s SSL-certifikatom
- Razlika med brezplačnim in plačljivim certifikatom
- Brezplačen DNS tečaj 5.2: CAA: kdo sme izdati certifikate?
