Preglednik koji prvo upiše http:// i završi na https:// nakon preusmjeravanja već je poslao jedan zahtjev u čistom obliku, a VPN to ne mijenja. Tunel štiti nogu od klijenta do izlaznog čvora; ne šifrira ništa iznad transportnog sloja, tako da promatrač između izlaza i ishodišta i dalje vidi skok otvorenog teksta. Postavljanje HTTPS-a kao prvog zahtjeva promjena je na strani klijenta s tri dijela: stvarna HTTPS adresa, način nadogradnje preglednika i vlastita pravila web-mjesta. Koraci u nastavku su redoslijed koji koristim, svaki s čekom koji vam govori je li potrebno.

1. korak: potvrdite što je zapravo prvi zahtjev

Prije nego bilo što promijenite, pogledajte što preglednik šalje. Otvorite mrežnu ploču sa stranicom ponovno učitanom iz hladne predmemorije i pročitajte prvi red: ako je shema http i status 301 ili 308, sve nakon tog retka je drugi zahtjev. curl -sS -o /dev/null -w '%{http_code} %{url_effective}\n' http://example.com reproducira isti niz izvan preglednika i ispisuje URL na kojem ste završili.

Dva su ishoda moguća i potrebna su različita rješenja. Ako web mjesto poslužuje HTTPS na istom hostu, rješenje je zaustaviti objavljivanje HTTP obrasca: ažurirajte oznaku, wiki vezu, prečac na radnoj površini i predložak e-pošte koji ljudi kliknu. Ako web-mjesto uopće ne služi HTTPS, nikakva postavka preglednika ga neće stvoriti, a iskren je odgovor da je odredište problem. Nemojte prekriti drugi slučaj iznimkom, jer iznimka certifikata na stranici računa pretvara problem prijenosa u problem s vjerodajnicama. Zapišite u kojem se slučaju nalazite prije nego što dodirnete postavku.

Korak 2: uključite način rada preglednika samo za HTTPS

Način nadogradnje je drugi dio i načini nisu međusobno zamjenjivi. Provjerite što vaš radi prije nego što ga omogućite: nadogradite tiho, nadogradite s upozorenjem ili odbijte učitavanje.

U Firefoxu kontrole se nalaze iza about:config i na stranici postavki privatnosti, s dom.security.https_only_mode kao prekidačem i iznimkama po web-mjestu kojima se upravlja iz izbornika lokota. U Chromeu i Edgeu ista ideja nalazi se u odjeljku Postavke, Privatnost i sigurnost, Sigurnost, s oznakom Uvijek koristi sigurne veze. Bez obzira na oznaku, provjerite ponašanje u odnosu na glavno računalo koje odgovara samo na portu 80, jer način rada koji se nadograđuje i potom tiho vraća nije zaštita za koju mislite da ste omogućili. Dokumentacija samo za HTTPS za Firefox navodi ponašanje nadogradnje, upozorenja i iznimke za taj preglednik.

3. korak: popravite resurse, ne samo adresnu traku

Kada nadogradnja ne uspije, pročitajte točnu pogrešku umjesto adresne trake. Host bez HTTPS slušača, naziv hosta koji ne odgovara certifikatu i lanac koji je istekao proizvode različite poruke i pripadaju različitim vlasnicima. Samo prvi je jaz na strani poslužitelja; drugi je obično knjižna oznaka koja nikada nije ažurirana; treći je problem obnove za koji VPN veza nije bitna.

Nemojte dodavati iznimku certifikata na stranicu računa jer je VPN uključen. Iznimka onemogućuje provjeru koja bi uhvatila upravo ono presretanje koje VPN treba spriječiti.

Treći dio je unutar stranice i to je ono što ljudima nedostaje. Stranica koja se učitava putem HTTPS-a i dalje može povlačiti slike, fontove ili skripte s http URL-a, a preglednik će ih blokirati ili smanjiti sigurnosni indikator za cijelu stranicu. Pregledajte neuspjele zahtjeve na mrežnoj ploči i popravite reference resursa kod njihovog vlasnika umjesto da pretpostavljate da adresna traka opisuje svaki zahtjev. Na web mjestu koje pokrećete to znači ispravljanje pohranjenih URL-ova u CMS-u ili predlošku umjesto ponovnog pisanja u pregledniku. Ako ne možete promijeniti izvor, zabilježite mješoviti sadržaj kao poznatu prazninu jer je lokot na stranici koja povlači izvore otvorenog teksta lažni signal.

Korak 4: što HSTS dodaje, a što ne

HSTS je pravilo stranice, a ne postavka preglednika, i to je jedini mehanizam ovdje koji preživljava upisani http:// na novom profilu. Nakon što preglednik vidi zaglavlje Strict-Transport-Security za host, prepisuje kasnije zahtjeve na https prije nego ih pošalje, što je upravo ono svojstvo koje želite. Ne radi ništa za host koji preglednik nikada nije posjetio, i ništa za drugi naziv hosta koji služi istoj aplikaciji.

Provjerite što izvor šalje s curl -sSI https://example.com | grep -i strict-transport-security. Zaglavlje koje nedostaje je promjena poslužitelja, a ne nešto što klijent može instalirati. Ako je prisutan, pročitajte max-age i je li includeSubDomains postavljen, jer kratka maksimalna dob istječe između posjeta, a nedostatak includeSubDomains ostavlja svaku poddomenu nezaštićenom. RFC 6797 definira kako korisnički agent primjenjuje pravilo i što može zanemariti. Predučitavanje je zasebna obveza, stoga provjerite status putem API-ja hstspreload.org prije nego što ikome obećate da je domena na popisu.

Provjera i povratak

Vraćanje je jeftino za postavke klijenta i skupo za HSTS. Isključivanje samo HTTPS načina rada odmah vraća prethodno ponašanje; dugo max-age ne, a posjetitelji koji su ga već primili nastavljaju nadograđivati dok ne istekne.

Zato provjerite redoslijedom prije nego što završite. Ponovno učitajte iz hladne predmemorije i potvrdite da je prvi zahtjev na mrežnoj ploči https bez prethodnog preusmjeravanja. Zatim provjerite poddomenu, jer se kod includeSubDomains ova pravila obično ispostavljaju uža nego što se pretpostavlja. Zatim provjerite jednu stranicu koja povlači sredstva treće strane, budući da je mješoviti sadržaj greška koja preživi svaki drugi popravak.

Ako je prvi zahtjev i dalje http nakon svega toga, klijent više nije varijabla: veza koju ljudi kliknu jest. Pretražite mjesta koja kontrolirate za http oblik naziva hosta, ažurirajte ih i ponovno testirajte s istim ponovnim učitavanjem hladne predmemorije. Pitanje o VPN-u cijelo vrijeme držite odvojeno jer tunel mijenja tko može vidjeti zahtjev i nikada ne mijenja je li zahtjev šifriran. Redak koji treba staviti u kartu je da je prvi zahtjev onaj koji je važan, a preusmjeravanje je samo potvrda za već poslan zahtjev.

Povezani članci