Modul 3 · 3.1
Https i certifikat
Modul 3: Adresa, https i korisnici · Vrijeme čitanja: 8 minuta
Cilj učenja: Nakon ove lekcije moći ćete potpuno postaviti WordPress web-stranicu na https i znat ćete čemu služe WordPress adresa i adresa web-stranice.
Ključni pojmovi: TLS, certifikat, Let's Encrypt, automatsko produljenje, WordPress adresa (siteurl), adresa web-stranice (home), WP_HOME i WP_SITEURL, HSTS, izgubljen pristup administraciji
Što https radi
Uz https sve između preglednika i poslužitelja prolazi kriptirano: lozinke, obrasci, kolačići, čak i obične stranice. Bez https-a svatko na istoj mreži (javni wifi, preuzeti usmjerivač) može čitati, pa čak i mijenjati stranicu. Preglednici prikazuju web-stranicu bez https-a kao „nesigurnu”, a neke funkcije (poput lokacije ili kamere) rade samo uz https.
Kriptiranje se naziva TLS. Kako bi se dokazalo da preglednik doista komunicira s example.com, a ne s posrednikom, poslužitelj ima certifikat: digitalni dokaz koji potpisuje izdavač kojem preglednici vjeruju. Certifikat navodi nazive za koje vrijedi i do kada.
Besplatni certifikati i produljenje
Let's Encrypt izdaje besplatne certifikate. Gotovo svaki hosting pružatelj ih automatski naručuje i automatski produljuje. Certifikat tvrtke Let's Encrypt trenutačno vrijedi 90 dana, a Let's Encrypt je najavio postupno skraćivanje te valjanosti na 45 dana. Ručno produljivanje stoga nije opcija: to mora ići automatski.
Plaćeni certifikat ne kriptira bolje. Razlika je u dodatnoj provjeri organizacije (i ponekad jamstvu). Za većinu web-stranica besplatan certifikat je sasvim dovoljan.
Na što trebate obratiti pozornost:
- Certifikat mora pokrivati svaki naziv koji posjetitelj može utipkati:
example.comiwww.example.com. Pa i naziv koji samo preusmjerava, jer preglednik provjerava certifikat prije preusmjeravanja. - Automatsko produljenje uspijeva samo ako DNS pokazuje prema Vašem poslužitelju. Ako ste preselili DNS ili ste ispred njega postavili proxy (poput Cloudflarea), provjerite radi li produljenje i dalje ispravno.
- CAA zapis u DNS-u može odrediti koji izdavači smiju izrađivati certifikate. Ako Let's Encrypt nije naveden, zahtjev neće uspjeti (tečaj o DNS-u, lekcija 5.2).
Dvije adrese u WordPressu
Pod Postavke > Općenito nalaze se dvije adrese. Djeluju suvišno dvostruko, ali znače nešto drugo:
| Polje | U bazi podataka | Značenje |
|---|---|---|
| WordPress adresa (URL) | siteurl | Gdje se nalaze datoteke WordPressa (wp-admin, wp-includes) |
| Adresa web-stranice (URL) | home | Adresa koju posjetitelji koriste |
Obično su jednake, primjerice obje https://example.com. Razlikuju se samo ako je WordPress smješten u podmapi, ali web-stranica se mora prikazivati u glavnoj mapi.
WordPress pomoću ovih adresa izrađuje sve poveznice: prema stranicama, stylesheetovima, slikama, administraciji. Ako ovdje stoji http://, WordPress gradi stranice s http:// poveznicama, čak i kada posjetitelj dolazi putem https-a. To uzrokuje miješani sadržaj (mixed content) (lekcija 3.2) i preusmjeravanja naprijed-natrag.
Postavljanje web-stranice na https
Ako imate postojeću web-stranicu na http-u, koraci su sljedeći:
- Zatražite certifikat za oba naziva i provjerite radi li
https://example.com(prikazat će se WordPress stranica, možda još bez oblikovanja). - Izradite sigurnosnu kopiju (lekcija 8.1).
- Obje adrese pod Postavke > Općenito postavite na
https://i spremite. Bit ćete odjavljeni; ponovno se prijavite putem https-a. - Stare poveznice u sadržaju promijenite iz
http://example.comuhttps://example.com. To napravite alatom koji razumije serijalizirane podatke, poputwp search-replaceili dodatka za pretragu i zamjenu (lekcija 3.2), nikada izravnom SQL naredbom. - Preusmjeravanje: neka web-poslužitelj preusmjerava sve zahtjeve na http putem statusa 301 na https (lekcija 3.2). Mnogi hosting pružatelji imaju kvačicu za to; inače nekoliko redaka u
.htaccess. - Provjerite pomoću zadatka iz ove lekcije i onoga iz lekcije 3.2.
Izgubljen pristup: kada je adresa pogrešno postavljena
Ako kod adresa napravite tipfeler (htps://, pogrešna domena), WordPress Vas nakon spremanja šalje na tu pogrešnu adresu. Administraciji više ne možete pristupiti. Bez panike, postoje dva izlaza:
Putem wp-config.php. Postavite iznad retka „zaustavi uređivanje”:
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );Ovi redci imaju prednost nad vrijednostima u bazi podataka. Polja u Postavke > Općenito tada postaju siva. Prijavite se, postavite ispravne vrijednosti u bazi podataka te uklonite ove retke (ili ih svjesno ostavite, tako nitko ne može slučajno promijeniti adrese putem administracije).
Putem phpMyAdmin. Otvorite tablicu wp_options i prilagodite vrijednosti siteurl i home.
HSTS: neka preglednik zapamti
Zaglavljem HSTS (Strict-Transport-Security) poslužitelj govori pregledniku: „ubuduće dolazi ovdje isključivo putem https-a.” Preglednik nakon toga sam pretvara svaki http:// u https://, bez slanja nezaštićenog zahtjeva unaprijed.
Strict-Transport-Security: max-age=31536000; includeSubDomainsHSTS je dobar dodatni korak, ali uz upozorenje: preglednik koji je vidio HSTS nakon toga odbija otvoriti web-stranicu bez valjanog certifikata, čak ni uz opciju „ipak nastavi”. S parametrom includeSubDomains to vrijedi za svaku poddomenu. Ako imate poddomenu bez certifikata (primjerice stari interni sustav), nakon HSTS-a postaje nedostupna. Zato počnite s kratkim max-age (primjerice jedan dan, 86400), sve provjerite, pa tek onda produljite.
U praksi: ovako to izgleda u upravljačkoj ploči
Kao primjer koristimo DirectAdmin. U cPanelu se ta stavka zove SSL/TLS Status (AutoSSL), a u Plesku SSL/TLS Certificates.
- Otvorite SSL certifikate kod svoje domene i odaberite Besplatni i automatski certifikat tvrtke Let's Encrypt.
- Označite
example.comiwww.example.comte zatražite certifikat. - U postavkama domene uključite opciju koja posjetitelje uvijek šalje na https (kod DirectAdmina: Forceer SSL met https omleiding). Koristite samo jedan način preusmjeravanja: dva različita istovremeno mogu izazvati kruženje („previše preusmjeravanja”).
- U WordPressu idite na Postavke > Općenito i postavite obje adrese na
https://.
Sažetak
- https kriptira sve između preglednika i poslužitelja; certifikat dokazuje identitet poslužitelja.
- Besplatni certifikati tvrtke Let's Encrypt kratko vrijede i automatski se produljuju; moraju pokrivati svaki naziv koji posjetitelj utipka.
- WordPress adresa (siteurl) i adresa web-stranice (home) moraju obje biti postavljene na
https://. - Ako izgubite pristup zbog pogrešne adrese, popravite to pomoću WP_HOME i WP_SITEURL u wp-config.php ili u phpMyAdminu.
- HSTS je dobar dodatni korak; počnite s kratkom valjanošću.
Kviz
Zadatak
Zadatak A3.1: Je li Vaš certifikat ispravan? Unesite adresu svoje web-stranice. Program uspostavlja TLS vezu s domenom bez www i s www (ako postoji) te provjerava: je li certifikat valjan i pouzdan, pokriva li oba naziva, vrijedi li dulje od 14 dana i šalje li web-stranica HSTS zaglavlje? Ako HSTS nedostaje, to je prikazano narančasto uz objašnjenje, a ne kao greška.
Dodatno čitanje
Ovi članci opisuju korake u upravljačkim pločama tvrtke WebOké; u drugim pločama postupak je sličan.
- DirectAdmin priručnik 6.1: Što je SSL i kako to WebOké rješava?
- DirectAdmin priručnik 6.2: Zatražite besplatan Let's Encrypt certifikat
- DirectAdmin priručnik 6.3: Certifikat za www, poddomene i wildcard
- DirectAdmin priručnik 6.4: Posjetitelje uvijek usmjerite na https
- Aktiviranje, obnavljanje i rješavanje problema sa SSL certifikatom
- Razlika između besplatnog i plaćenog certifikata
- Besplatni DNS tečaj 5.2: CAA: tko smije izdavati certifikate?
