Sådan gør du HTTPS til den første anmodning gennem en VPN
Kun HTTPS-tilstand, rigtige HTTPS-bogmærker og HSTS er tre forskellige rettelser. Kør gennem dem i rækkefølge, så den første anmodning er krypteret, ikke omdirigeret.
En browser, der skriver http:// først og lander på https:// efter en omdirigering allerede har sendt en anmodning i det klare, og en VPN ændrer ikke på det. Tunnelen beskytter benet fra klienten til udgangsnoden; den krypterer ikke noget over transportlaget, så en observatør mellem udgangen og oprindelsen ser stadig klarteksthoppet. At gøre HTTPS til den første anmodning er en ændring på klientsiden med tre dele: en rigtig HTTPS-adresse, browserens opgraderingstilstand og webstedets egen politik. Trinene nedenfor er den rækkefølge, jeg bruger, hver med checken, der fortæller dig, om det tog.
Trin 1: Bekræft, hvad den første anmodning faktisk er
Før du ændrer noget, skal du se på, hvad browseren sender. Åbn netværkspanelet med siden genindlæst fra en kold cache, og læs den første række: Hvis skemaet er http, og status er 301 eller 308, er alt efter den række en anden anmodning. curl -sS -o /dev/null -w '%{http_code} %{url_effective}\n' http://example.com gengiver den samme sekvens uden for browseren og udskriver den URL, du endte på.
To udfald er mulige, og de har brug for forskellige rettelser. Hvis webstedet serverer HTTPS på den samme vært, er løsningen at stoppe med at udgive HTTP-formularen: Opdater bogmærket, wiki-linket, skrivebordsgenvejen og den e-mailskabelon, folk klikker på. Hvis webstedet slet ikke betjener HTTPS, vil ingen browserindstillinger oprette det, og det ærlige svar er, at destinationen er problemet. Lad være med at skrive over den anden sag med en undtagelse, fordi en certifikatundtagelse på en kontoside konverterer et transportproblem til et legitimationsproblem. Skriv ned, hvilken sag du er i, før du trykker på en indstilling.
Trin 2: Slå browserens kun HTTPS-tilstand til
Opgraderingstilstanden er den anden del, og tilstandene kan ikke udskiftes. Tjek, hvad din gør, før du aktiverer den: opgrader lydløst, opgrader med en advarsel, eller nægt at indlæse.
I Firefox findes kontrollerne bag about:config og på siden med indstillinger for beskyttelse af personlige oplysninger, med dom.security.https_only_mode som switch og undtagelser pr, websted administreret fra hængelåsmenuen. I Chrome og Edge findes den samme idé under Indstillinger, privatliv og sikkerhed, sikkerhed, mærket Brug altid sikre forbindelser. Uanset etiketten skal du kontrollere adfærden over for en vært, der kun svarer på port 80, fordi en tilstand, der opgraderer og derefter lydløst falder tilbage, ikke er den beskyttelse, du tror, du har aktiveret. Firefox HTTPS-Only-dokumentationen beskriver opgraderingen, advarslen og undtagelsesadfærden for den pågældende browser.
Trin 3: Ret ressourcerne, ikke kun adresselinjen
Når en opgradering mislykkes, skal du læse den nøjagtige fejl i stedet for adresselinjen. En vært uden HTTPS-lytter, et værtsnavn, der ikke matcher certifikatet, og en udløbet kæde producerer forskellige meddelelser og tilhører forskellige ejere. Kun den første er et hul på serversiden; det andet er normalt et bogmærke, der aldrig blev opdateret; den tredje er et fornyelsesproblem, som VPN-forbindelsen er irrelevant for.
Føj ikke en certifikatundtagelse til et kontowebsted, fordi VPN er slået til. Undtagelsen deaktiverer kontrollen, der ville have fanget præcis den aflytning, en VPN skal forhindre.
Den tredje del er inde på siden, og det er den, folk savner. En side, der indlæses over HTTPS, kan stadig trække billeder, skrifttyper eller scripts fra en http URL, og browseren vil enten blokere dem eller nedgradere sikkerhedsindikatoren for hele siden. Undersøg de mislykkede anmodninger i netværkspanelet og ret ressourcereferencerne hos deres ejer i stedet for at antage, at adresselinjen beskriver hver anmodning. På et websted, du kører, betyder det at rette de gemte URL'er i CMS'et eller skabelonen i stedet for at omskrive dem i browseren. Hvis du ikke kan ændre kilden, skal du optage det blandede indhold som et kendt hul, fordi en hængelås over en side, der trækker almindelige tekstressourcer, er et falsk signal.
Trin 4: hvad HSTS tilføjer, og hvad det ikke gør
HSTS er en webstedspolitik snarere end en browserpræference, og det er den eneste mekanisme her, der overlever en skrevet http:// på en ny profil. Når en browser har set en Strict-Transport-Security header for en vært, omskriver den senere anmodninger til https, før den sender dem, hvilket er præcis den egenskab, du ønsker. Det gør intet for en vært, som browseren aldrig har besøgt, og intet for et andet værtsnavn, der betjener det samme program.
Tjek, hvad oprindelsen sender med curl -sSI https://example.com | grep -i strict-transport-security. En manglende header er en serverændring og ikke noget, en klient kan installere. Hvis den er til stede, skal du læse max-age og om includeSubDomains er indstillet, fordi en kort maks-alder udløber mellem besøg og et manglende includeSubDomains efterlader hvert underdomæne ubeskyttet. RFC 6797 definerer, hvordan en brugeragent anvender politikken, og hvad den må ignorere. Forudindlæsning er en separat forpligtelse, så tjek status gennem hstspreload.org API, før du lover nogen, at et domæne er på listen.
Bekræftelse og tilbagerulning
Tilbagerulning er billigt for klientindstillingerne og dyrt for HSTS. Deaktivering af kun HTTPS-tilstand gendanner den tidligere adfærd med det samme; en lang max-alder gør det ikke, og besøgende, der allerede har modtaget den, bliver ved med at opgradere, indtil den udløber.
Så bekræft i rækkefølge, før du kalder det færdigt. Genindlæs fra en kold cache, og bekræft, at den første anmodning i netværkspanelet er https uden forudgående omdirigering. Tjek derefter et underdomæne, fordi includeSubDomains er det sted, hvor disse politikker normalt viser sig at være snævrere end antaget. Tjek derefter én side, der henter tredjepartsaktiver, da blandet indhold er fejlen, der overlever hver anden rettelse.
Hvis den første anmodning stadig er http efter alt dette, er klienten ikke længere variablen: det link, folk klikker på, er. Søg på de steder, du kontrollerer, efter hostnavnets http-form, opdater dem, og test igen med den samme genindlæsning af kold cache. Hold VPN-spørgsmålet adskilt hele vejen igennem, fordi tunnelen ændrer, hvem der kan se anmodningen og ændrer aldrig, om anmodningen er krypteret. Linjen til at sætte i billetten er, at den første anmodning er den, der betyder noget, og en omdirigering er kun en kvittering for en allerede sendt anmodning.