3 modulis · 3.1
Https ir sertifikatas
3 modulis: Adresas, https ir naudotojai · Skaitymo trukmė: 8 min.
Mokymosi tikslas: Po šios pamokos galėsite visiškai perkelti WordPress svetainę į https ir žinosite, ką reiškia WordPress adresas ir svetainės adresas.
Pagrindinės sąvokos: TLS, sertifikatas, Let's Encrypt, automatinis pratęsimas, WordPress adresas (siteurl), svetainės adresas (home), WP_HOME ir WP_SITEURL, HSTS, užsirakinimas
Ką daro https
Naudojant https, visa informacija tarp naršyklės ir serverio perduodama šifruota forma: slaptažodžiai, formos, slapukai, taip pat ir įprasti puslapiai. Be https bet kas tame pačiame tinkle (viešas „Wi-Fi“, perimtas maršrutizatorius) gali tą informaciją perskaityti ir net pakeisti puslapio turinį. Naršyklės svetainę be https rodo kaip „nesaugią“, o kai kurios funkcijos (pvz., vietos nustatymas ar kamera) veikia tik per https.
Šifravimas vadinamas TLS. Kad įrodytų, jog naršyklė iš tikrųjų bendrauja su example.com, o ne su tarpininku, serveris turi sertifikatą: skaitmeninį įrodymą, pasirašytą leidėjo, kuriuo pasitiki naršyklės. Sertifikate nurodomi pavadinimai, kuriems jis galioja, ir galiojimo laikas.
Nemokami sertifikatai ir jų pratęsimas
Let's Encrypt išduoda nemokamus sertifikatus. Beveik kiekvienas talpinimo paslaugų teikėjas juos užsako ir automatiškai pratęsia. Šiuo metu Let's Encrypt sertifikatas galioja 90 dienų, o Let's Encrypt paskelbė, kad šis galiojimo laikas palaipsniui bus trumpinamas iki 45 dienų. Todėl rankinis pratęsimas nėra variantas: tai turi vykti automatiškai.
Mokamas sertifikatas nešifruoja geriau. Skirtumas yra papildomame organizacijos patikrinime (o kartais ir garantijoje). Daugumai svetainių nemokamas sertifikatas yra puikiai tinkamas.
Į ką atkreipti dėmesį:
- Sertifikatas turi apimti kiekvieną pavadinimą, kurį lankytojas gali įvesti:
example.comirwww.example.com. Taip pat ir tą pavadinimą, kuris tik nukreipia, nes naršyklė sertifikatą patikrina prieš peradresavimą. - Automatinis pratęsimas veikia tik tuo atveju, jei DNS rodo į Jūsų serverį. Jei perkėlėte DNS arba naudojate tarpinį serverį (pvz., Cloudflare), patikrinkite, ar pratęsimas vis dar veikia.
- CAA įrašas DNS gali nustatyti, kurie leidėjai gali išduoti sertifikatus. Jei ten nenurodytas Let's Encrypt, užklausa nepavyks (DNS kurso 5.2 pamoka).
Du adresai WordPress sistemoje
Skiltyje Nustatymai > Pagrindinės yra du adresai. Jie atrodo nereikalingai dubliuoti, tačiau reiškia skirtingus dalykus:
| Laukas | Duomenų bazėje | Reikšmė |
|---|---|---|
| WordPress adresas (URL) | siteurl | Kur yra WordPress failai (wp-admin, wp-includes) |
| Svetainės adresas (URL) | home | Adresas, kurį naudoja lankytojai |
Dažniausiai jie sutampa, pavyzdžiui, abu yra https://example.com. Jie skiriasi tik tuo atveju, jei WordPress yra poaplankyje, bet svetainė turi rodytis pagrindiniame aplanke.
Naudodamas šiuos adresus, WordPress kuria visas nuorodas: į puslapius, stilių failus, nuotraukas, administravimo sritį. Jei čia nurodyta http://, WordPress kurs puslapius su http:// nuorodomis, net jei lankytojas prisijungia per https. Tai sukelia mišrų turinį (mixed content) (3.2 pamoka) ir peradresavimus pirmyn ir atgal.
Svetainės perkėlimas į https
Jei turite esamą svetainę su http, atlikite šiuos veiksmus:
- Užsisakyti sertifikatą abiems pavadinimams ir patikrinti, ar veikia
https://example.com(turėtumėte matyti WordPress puslapį, galbūt dar be stiliaus). - Sukurti atsarginę kopiją (8.1 pamoka).
- Skiltyje Nustatymai > Pagrindinės nustatyti abu adresus į
https://ir išsaugoti. Būsite atjungti; prisijunkite iš naujo per https. - Senas nuorodas turinyje pakeiskite iš
http://example.comįhttps://example.com. Tai darykite naudodami įrankį, kuris supranta serializuotus duomenis, pavyzdžiui,wp search-replacearba paieškos ir keitimo įskiepį (3.2 pamoka), niekada su paprasta SQL komanda. - Peradresavimas: nustatykite, kad žiniatinklio serveris visas http užklausas su 301 kodu nukreiptų į https (3.2 pamoka). Daugelis talpinimo paslaugų teikėjų tam turi varnelę; priešingu atveju reikia kelių eilučių faile
.htaccess. - Patikrinti su šios pamokos ir 3.2 pamokos užduotimi.
Užsirakinimas: kai adresas neteisingas
Jei adresų laukuose padarysite rašybos klaidą (htps://, neteisingas domenas), WordPress po išsaugojimo nukreips Jus į tą neteisingą adresą. Nebegalėsite pasiekti administravimo srities. Nesijaudinkite, yra du būdai tai ištaisyti:
Per wp-config.php. Virš eilutės „tai viskas, nebereikia nieko keisti“ įterpkite:
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );Šios eilutės turi pirmenybę prieš duomenų bazėje saugomas reikšmes. Laukai skiltyje Nustatymai > Pagrindinės tada tampa pilki. Prisijunkite, duomenų bazėje nustatykite teisingas reikšmes ir vėl pašalinkite šias eilutes (arba sąmoningai palikite jas, tada niekas negalės netyčia pakeisti adresų per administravimo sritį).
Per phpMyAdmin. Atidarykite lentelę wp_options ir pakoreguokite siteurl bei home reikšmes.
HSTS: priverčiame naršyklę įsiminti
Naudodamas HSTS antraštę (Strict-Transport-Security), serveris praneša naršyklei: „ateinančiu laikotarpiu jungtis čia tik per https.“ Po to naršyklė pati kiekvieną http:// paverčia į https://, iš anksto nebandydama atlikti nesaugios užklausos.
Strict-Transport-Security: max-age=31536000; includeSubDomainsHSTS yra geras papildomas žingsnis, tačiau su įspėjimu: naršyklė, kuri jau matė HSTS, vėliau atsisakys atidaryti svetainę be galiojančio sertifikato, net ir pasirinkus „vis tiek tęsti“. Su includeSubDomains tai galioja kiekvienam subdomenui. Jei turite subdomeną be sertifikato (pavyzdžiui, seną vidinę sistemą), po HSTS įjungimo jis taps nepasiekiamas. Todėl pradėkite nuo trumpo max-age (pavyzdžiui, vienos dienos, 86400), viską patikrinkite, o tada pratęskite.
Praktikoje: kaip tai atrodo valdymo skydelyje
Kaip pavyzdį naudojame DirectAdmin. cPanel šis skyrius vadinasi SSL/TLS Status (AutoSSL), Plesk sistemoje SSL/TLS Certificates.
- Atidarykite SSL sertifikatus prie savo domeno ir pasirinkite Nemokamą ir automatinį Let's Encrypt sertifikatą.
- Pažymėkite
example.comirwww.example.comir užsisakykite sertifikatą. - Domeno nustatymuose įjunkite varnelę, kad lankytojai visada būtų nukreipiami į https (DirectAdmin: Forceer SSL su https nukreipimu). Naudokite tik vieną peradresavimo būdą: du skirtingi vienu metu gali sukelti ratą („per daug peradresavimų“).
- WordPress sistemoje eikite į Nustatymai > Pagrindinės ir nustatykite abu adresus į
https://.
Santrauka
- https šifruoja visą informaciją tarp naršyklės ir serverio; sertifikatas įrodo, kas yra serveris.
- Nemokami Let's Encrypt sertifikatai galioja trumpai ir pratęsiami automatiškai; jie turi apimti kiekvieną pavadinimą, kurį įveda lankytojas.
- WordPress adresas (siteurl) ir svetainės adresas (home) abu turi būti nustatyti į
https://. - Jei užsirakinote dėl neteisingo adreso, atkurkite su WP_HOME ir WP_SITEURL faile wp-config.php arba per phpMyAdmin.
- HSTS yra geras papildomas žingsnis; pradėkite nuo trumpo galiojimo laiko.
Testas (quiz)
Užduotis
Užduotis A3.1: Ar Jūsų sertifikatas tvarkingas? Įveskite savo svetainės adresą. Programa sukurs TLS ryšį su domenu be www ir su www (jei toks yra) bei patikrins: ar sertifikatas galioja ir yra patikimas, ar jis apima abu pavadinimus, ar jis galioja ilgiau nei 14 dienų, ir ar svetainė siunčia HSTS antraštę? Jei HSTS nėra, tai bus pažymėta oranžine spalva su paaiškinimu, o ne kaip klaida.
Papildoma literatūra
Šiuose straipsniuose aprašomi veiksmai WebOké valdymo skydeliuose; kituose skydeliuose jie veikia panašiai.
- DirectAdmin vadovas 6.1: Kas yra SSL ir kaip WebOké tai sutvarko?
- DirectAdmin vadovas 6.2: Nemokamo Let's Encrypt sertifikato užsakymas
- DirectAdmin vadovas 6.3: Sertifikatas skirtas www, subdomenams ir wildcard
- DirectAdmin vadovas 6.4: Lankytojus visada nukreipti į https
- SSL sertifikato aktyvinimas, atnaujinimas ir trikčių šalinimas
- Nemokamo ir mokamo sertifikato skirtumas
- Nemokamas DNS kursas 5.2: CAA: kam leidžiama išduoti sertifikatus?
