Kas yra HTTPS ir SSL? Kaip veikia saugios svetainės, paprastai paaiškinta
HTTPS yra saugi HTTP versija – protokolas, kuriuo naršyklės bendrauja su svetainėmis. Kiekvieną užklausą ir atsakymą jis įpakuoja į šifruotą ryšį naudodamas TLS (Transport Layer Security), todėl niekas tarp lankytojo ir svetainės negali perskaityti ar pakeisti siunčiamų duomenų. SSL yra senesnis tos pačios idėjos pavadinimas – originalus protokolas, kurį pakeitė TLS, todėl žmonės vis dar sako „SSL sertifikatas“.
Kodėl HTTPS svarbus kuriant su DI
Bet kuri programėlė, kurią publikuojate, turėtų veikti per HTTPS. Tai ne tik gera praktika:
- Naršyklės to tikisi. Svetainės per paprastą HTTP pažymimos kaip „Nesaugu“, o kai kurios naršyklės funkcijos – pavyzdžiui, vietos nustatymas, kamera ir mikrofonas bei darbui neprisijungus reikalingi service workers – paprastai veikia tik saugiuose (HTTPS) puslapiuose.
- Prisijungimai ir formos. Be HTTPS slaptažodžiai, sesijos slapukai ir formų duomenys keliauja įskaitomu tekstu. Bet kas tame pačiame kavinės Wi-Fi tinkle juos potencialiai gali perimti.
- Mokėjimai ir trečiosios šalys. Mokėjimų teikėjai, OAuth prisijungimas ir daugelis API reikalauja HTTPS nukreipimo ir grįžimo adresų.
- Pasitikėjimas ir paieška. Lankytojai pastebi įspėjimą, o Google yra sakęs, kad HTTPS laiko reitingavimo signalu.
Gera žinia: daugelyje šiuolaikinių talpinimo platformų HTTPS nustatomas automatiškai. Jums reikia suprasti dalis pakankamai gerai, kad galėtumėte ją ištaisyti, kai nepavyksta pasirinktinis domenas ar mišraus turinio įspėjimas.
Kasdienė analogija
Duomenų siuntimas per paprastą HTTP yra lyg atviruko siuntimas: kiekvienas paštininkas, kuris jį tvarko, gali jį perskaityti, o kas nors net galėtų pakeisti žinutę.
HTTPS yra lyg užantspauduotas, nepažeidžiamas voko siuntimas – o prieš tai patikrinus gavėjo oficialų asmens dokumentą. Sertifikatas yra tas asmens dokumentas, kurį išduoda patikima institucija (sertifikatų institucija) patikrinusi, kad svetainė tikrai valdo domeną. Šifravimas yra užantspauduotas vokas. Dokumentas įrodo, kad rašote tinkamam adresatui; vokas saugo turinį privatų.
Kaip paprastai veikia HTTPS
Kai naršyklė atidaro https://shop.example.com:
- Sveiki. Naršyklė prisijungia ir pasako, kokius šifravimo metodus palaiko.
- Sertifikatas. Serveris išsiunčia savo sertifikatą, kuriame nurodoma „šis raktas priklauso
shop.example.com“ ir kuris pasirašytas sertifikatų institucijos. - Patikrinimas. Naršyklė patikrina parašą pagal institucijas, kurioms jau pasitiki, įsitikina, kad sertifikatas negaliojantis nėra, ir kad domenas sutampa.
- Raktai. Naršyklė ir serveris sutaria dėl naujo slapto rakto šiai sesijai, niekada jo neperduodami atvirai.
- Šifruotas pokalbis. Visos užklausos ir atsakymai – puslapiai, formų duomenys, slapukai – dabar keliauja užšifruoti.
Šis TLS rankos paspaudimas trunka kelias milisekundes ir vyksta automatiškai. Lankytojas mato tik spynelės piktogramą (arba kai kuriose naršyklėse neutralią svetainės informacijos piktogramą).
Ką HTTPS saugo, o ko ne
| Saugo | Nesaugo |
|---|---|
| Duomenis, perduodamus tarp naršyklės ir serverio | Duomenis, kai jie jau yra jūsų serveryje ar duomenų bazėje |
| Nuo klausymosi viešame Wi-Fi | Nuo kenkėjiškos ar sukčių svetainės |
| Nuo puslapių pakeitimo kelyje | Nuo jūsų programėlės klaidų, pavyzdžiui, trūkstamų teisių patikrinimų |
| Slapukus ir slaptažodžius, kol jie siunčiami | Nuo silpnų slaptažodžių ar nutekėjusių API raktų |
HTTPS užšifruoja užklausų turinį, įskaitant puslapio kelią ir užklausos eilutę. Tačiau domenų vardą, kurį aplankote, paprastai vis tiek mato tinklai kelyje. Dėl to asmeninių duomenų URL niekada nedėkite – jie vis tiek patenka į žurnalus ir naršyklės istoriją.
Darbo pavyzdys: pasirinktinio domeno prijungimas
Tarkime, publikuojate rezervacijų programėlę ir norite, kad ji veiktų adresu book.myyogastudio.com:
- Pridedate DNS įrašą, nukreipiantį
book.myyogastudio.comį jūsų talpintoją. Žr. kaip veikia domenai ir DNS. - Talpintojas įrodo sertifikatų institucijai, kad valdo tą vardą – paprastai atsakydamas į iššūkį tame domene – ir gauna sertifikatą.
- Talpintojas jį įdiegia ir automatiškai atnaujina prieš pasibaigiant galiojimui. Sertifikatai tyčia trumpalaikiai, todėl automatinis atnaujinimas svarbus.
- Lankytojai, atidarantys
http://book.myyogastudio.com, nukreipiami įhttps://.
Jei 1 žingsnis neteisingas – įrašas rodo kitur arba kelyje stovi tarpinis tarpininkas – 2 žingsnis gali nepavykti ir lankytojai pamato sertifikato klaidą. Tai dažniausia HTTPS problema, su kuria susiduria žmonės prijungdami pasirinktinį domeną.
Pagrindiniai terminai
| Terminas | Reikšmė |
|---|---|
| TLS | Transport Layer Security – šifravimo protokolas, esantis HTTPS pagrindu. |
| SSL | Secure Sockets Layer – pasenusis TLS pirmtakas. Pavadinimas išliko. |
| Sertifikatas | Pasirašytas failas, kuris sieja domeną su viešu raktu. |
| Sertifikatų institucija (CA) | Organizacija, kuriai naršyklės pasitiki ir kuri išduoda sertifikatus, pavyzdžiui, Let's Encrypt. |
| Domeno patvirtinimas (DV) | Sertifikatas, įrodantis domeno valdymą – jį naudoja beveik visos svetainės. |
| Wildcard sertifikatas | Padengia visus vieno lygio subdomenus, pavyzdžiui, *.example.com. |
| Mišrus turinys | HTTPS puslapis, kuris kai kuriuos išteklius įkelia per paprastą HTTP. Naršyklės tai blokuoja arba įspėja. |
| HSTS | Antraštė, nurodanti naršyklėms visada naudoti HTTPS jūsų svetainei nuo tada. |
| Prievadas 443 | Standartinis HTTPS prievadas (HTTP naudoja 80 prievadą). |
Dažni klaidingi įsitikinimai
- „Spynelė reiškia, kad svetainė patikima.“ Ji reiškia, kad ryšys privatus ir domenas sutampa. Sukčiai taip pat gauna sertifikatus.
- „HTTPS reikalingas tik mokėjimo puslapiams.“ Bet kuriam puslapiui su prisijungimu, forma ar slapuku jo reikia – o tai beveik kiekviena programėlė. Naudokite jį visur.
- „Sertifikatai brangūs.“ Nemokami, patikimi sertifikatai yra standartas, o daugelis talpintojų juos valdo už jus.
- „HTTPS padaro mano programėlę saugią.“ Jis apsaugo ryšį. Programėlei vis tiek reikalingi serverio pusės leidimų patikrinimai, saugus paslapčių tvarkymas ir įvesties tikrinimas. Žr. saugumo kontrolinį sąrašą DI sukurtoms programėlėms.
- „HTTPS lėtina svetaines.“ Šiuolaikinis TLS prideda labai mažai papildomų sąnaudų, o tokios funkcijos kaip HTTP/2, kurios svetaines daro greitesnes, naršyklėse paprastai reikalauja HTTPS.
Dažnų HTTPS problemų taisymas
| Simptomas | Tikėtina priežastis |
|---|---|
| „Jūsų ryšys nėra privatus“ | Sertifikatas nepadengia tiksliai šio domeno, pasibaigė arba dar neišduotas |
Veikia su www., bet ne su nuogu domenu (arba atvirkščiai) | Tik vienas vardas turi DNS ir sertifikatą |
| Nėra spynelės, „Not secure“ kai kuriuose puslapiuose | Mišrus turinys: paveikslėlis, skriptas ar šriftas įkeltas per http:// |
| Sertifikato klaida iškart po domeno prijungimo | DNS dar plinta, arba prieš jį stovintis tarpinis serveris blokuoja sertifikato patikrinimą |
Ko paklausti savo DI kūrimo įrankio
- „Įsitikink, kad kiekvienas paveikslėlis, skriptas ir šriftas įkeliamas per HTTPS arba santykinį URL – jokių
http://nuorodų.“ - „Nukreipk visą HTTP srautą į HTTPS.“
- „Nustatyk sesijos slapukams
SecureirHttpOnlyžymas.“ - „Naudok
https://kiekvienam OAuth, mokėjimo ir webhook grįžimo adresui.“ - „Mano pasirinktinis domenas rodo sertifikato klaidą – kokio DNS įrašo tikisi talpintojas?“
HTTPS Mythex
Kai Mythex prijungiate pasirinktinį domeną (Pro funkcija), pridedate CNAME įrašą, nukreipiantį į slug.mythex.ai tikslą, kurį Mythex parodo, spustelite Verify, ir Mythex automatiškai išduoda HTTPS tam domenui. Dokumentacijoje aprašomos dvi dažniausios kliūtys: jei jūsų DNS yra Cloudflare, nustatykite įrašą į „DNS only“ (pilka debesėlis), o ne „proxied“, kad Mythex galėtų išduoti sertifikatą; taip pat DNS gali patvirtinti dar prieš visiškai nustatant HTTPS, todėl palaukite kelias minutes ir patvirtinkite dar kartą. Žr. pasirinktinius domenus dokumentacijoje ir mūsų vadovą kaip prijungti pasirinktinį domeną.
Klausimai
Kuo skiriasi HTTP ir HTTPS?
HTTP siunčia duomenis tarp naršyklės ir svetainės kaip įskaitomą tekstą. HTTPS yra HTTP, siunčiamas per šifruotą TLS ryšį, todėl žmonės tame pačiame tinkle ar maršrute negali perskaityti ar pakeisti siunčiamo turinio, o naršyklė gali patikrinti, kad kalbasi su tikra svetaine.
Ar SSL ir TLS yra tas pats?
TLS yra šiuolaikinis SSL įpėdinis. Visos SSL versijos yra pasenusios ir nesaugios, o šiandieninės saugios svetainės naudoja TLS. Žmonės dar įpratę sakyti „SSL sertifikatas“, bet sertifikatai naudojami su TLS.
Ar spynelė reiškia, kad svetainė saugi?
Ne. Spynelė reiškia, kad ryšys užšifruotas ir sertifikatas atitinka domeną. Sukčių svetainė taip pat gali turėti galiojantį sertifikatą. Ji rodo, kad niekas negali sekti ryšio, bet ne tai, kad svetainės savininkas yra patikimas.
Ar reikia mokėti už SSL sertifikatą?
Paprastai ne. Nemokamos, automatizuotos sertifikatų institucijos, pavyzdžiui, Let's Encrypt, išduoda naršyklių patikimus sertifikatus, o daugelis talpinimo platformų juos gauna ir atnaujina už jus. Mokami sertifikatai dažniausiai prideda palaikymą ar papildomus tapatybės patikrinimus.
Kodėl mano svetainėje rašoma „Not Secure“?
Dažniausios priežastys: svetainė atidaroma per http:// vietoj https://, sertifikatas pasibaigęs arba nepadengia tiksliai to domeno, arba puslapis įkelia paveikslėlius ar skriptus per paprastą http:// (mišrus turinys).