Jak udělat z HTTPS první požadavek prostřednictvím VPN
Režim pouze HTTPS, skutečné záložky HTTPS a HSTS jsou tři různé opravy. Projděte je v pořadí, aby byl první požadavek zašifrován, nikoli přesměrován.
Prohlížeč, který jako první zadá http:// a po přesměrování přejde na https://, již odeslal jeden požadavek v čistém stavu a VPN to nezmění. Tunel chrání nohu od klienta k výstupnímu uzlu; nešifruje nic nad transportní vrstvou, takže pozorovatel mezi východem a počátkem stále vidí přeskakování otevřeného textu. Udělat z HTTPS první požadavek je změna na straně klienta, která se skládá ze tří částí: skutečné adresy HTTPS, režimu upgradu prohlížeče a vlastních zásad webu. Níže uvedené kroky představují pořadí, které používám, každý s kontrolou, která vám řekne, zda to trvalo.
Krok 1: potvrďte, co je vlastně první požadavek
Než cokoli změníte, podívejte se, co prohlížeč odesílá. Otevřete panel sítě se stránkou znovu načtenou ze studené mezipaměti a přečtěte si první řádek: pokud je schéma http a stav je 301 nebo 308, vše po tomto řádku je druhý požadavek. curl -sS -o /dev/null -w '%{http_code} %{url_effective}\n' http://example.com reprodukuje stejnou sekvenci mimo prohlížeč a vytiskne URL, na které jste skončili.
Jsou možné dva výsledky a vyžadují různé opravy. Pokud web poskytuje HTTPS na stejném hostiteli, oprava spočívá v zastavení publikování formuláře HTTP: aktualizujte záložku, odkaz na wiki, zástupce na ploše a šablonu e-mailu, na kterou lidé klikají. Pokud web vůbec neslouží HTTPS, žádné nastavení prohlížeče ho nevytvoří a upřímná odpověď je, že problém je v cíli. Nepřepisujte druhý případ s výjimkou, protože výjimka certifikátu na stránce účtu převede problém přenosu na problém s pověřením. Než se dotknete nastavení, zapište si, v jakém případě jste.
Krok 2: Zapněte v prohlížeči režim pouze HTTPS
Režim upgradu je druhá část a režimy nejsou zaměnitelné. Než jej povolíte, zkontrolujte, co dělá ten váš: upgradujte v tichosti, upgradujte s varováním nebo odmítněte načítání.
Ve Firefoxu jsou ovládací prvky umístěny za about:config a na stránce nastavení soukromí s dom.security.https_only_mode jako přepínačem a výjimkami pro jednotlivé stránky spravovanými z nabídky visacího zámku. V Chrome a Edge se stejný nápad nachází v části Nastavení, Soukromí a zabezpečení, Zabezpečení, označené Vždy používat zabezpečená připojení. Bez ohledu na označení ověřte chování vůči hostiteli, který odpovídá pouze na portu 80, protože režim, který upgraduje a poté se tiše vrátí zpět, není ochrana, o které si myslíte, že jste ji aktivovali. Dokumentace Firefox HTTPS-Only vysvětluje chování upgradu, varování a výjimky pro tento prohlížeč.
Krok 3: opravte zdroje, nejen adresní řádek
Když se upgrade nezdaří, přečtěte si místo adresního řádku přesnou chybu. Hostitel bez posluchače HTTPS, název hostitele, který neodpovídá certifikátu, a řetězec s prošlou platností produkují různé zprávy a patří různým vlastníkům. Pouze první je mezera na straně serveru; druhá je obvykle záložka, která nebyla nikdy aktualizována; třetí je problém s obnovením, pro který je připojení VPN irelevantní.
Nepřidávejte na stránku účtu výjimku certifikátu, protože je zapnutá síť VPN. Výjimka deaktivuje kontrolu, která by přesně zachytila zachycení, kterému má VPN zabránit.
Třetí část je uvnitř stránky a je to ta, která lidem chybí. Stránka, která se načítá přes HTTPS, může stále stahovat obrázky, fonty nebo skripty z http URL a prohlížeč je buď zablokuje, nebo sníží bezpečnostní indikátor pro celou stránku. Zkontrolujte neúspěšné požadavky na síťovém panelu a opravte odkazy na zdroje u jejich vlastníka, místo abyste předpokládali, že adresní řádek popisuje každý požadavek. Na webu, který provozujete, to znamená opravu uložených adres URL v CMS nebo šabloně namísto jejich přepisování v prohlížeči. Pokud nemůžete změnit zdroj, zaznamenejte smíšený obsah jako známou mezeru, protože visací zámek nad stránkou, která stahuje zdroje ve formátu prostého textu, je falešný signál.
Krok 4: co HSTS přidává a co nepřidává
HSTS je spíše zásada webu než preference prohlížeče a je to zde jediný mechanismus, který přežije zadané http:// na novém profilu. Jakmile prohlížeč uvidí záhlaví Strict-Transport-Security pro hostitele, přepíše pozdější požadavky na https, než je odešle, což je přesně vlastnost, kterou chcete. Nedělá nic pro hostitele, kterého prohlížeč nikdy nenavštívil, a nic nedělá pro jiný název hostitele, který slouží stejné aplikaci.
Zkontrolujte, co původ posílá pomocí curl -sSI https://example.com | grep -i strict-transport-security. Chybějící hlavička je změna serveru a ne něco, co si klient může nainstalovat. Pokud je přítomen, přečtěte si max-age a zda je nastaveno includeSubDomains, protože mezi návštěvami vyprší krátký maximální věk a chybějící includeSubDomains ponechává každou subdoménu nechráněnou. RFC 6797 definuje, jak uživatelský agent aplikuje zásady a co může ignorovat. Předběžné načtení je samostatný závazek, takže než někomu slíbíte, že je doména na seznamu, zkontrolujte stav prostřednictvím rozhraní hstspreload.org API.
Ověření a vrácení zpět
Vrácení zpět je levné pro nastavení klienta a drahé pro HSTS. Vypnutí režimu pouze HTTPS okamžitě obnoví předchozí chování; dlouhý maximální věk ne a návštěvníci, kteří jej již obdrželi, pokračují v upgradu, dokud nevyprší.
Než to zavoláte, ověřte pořadí. Znovu načtěte ze studené mezipaměti a potvrďte, že první požadavek na síťovém panelu je https bez předchozího přesměrování. Poté zkontrolujte subdoménu, protože includeSubDomains je místo, kde se tyto zásady obvykle ukáží jako užší, než se předpokládalo. Pak zkontrolujte jednu stránku, která stahuje podklady třetích stran, protože smíšený obsah je selhání, které přežije každou další opravu.
Pokud je první požadavek po tom všem stále http, klient již není proměnnou: odkaz, na který lidé kliknou, ano. Vyhledejte na místech, která ovládáte, formu http názvu hostitele, aktualizujte je a znovu otestujte se stejným obnovením studené mezipaměti. Ponechte otázku VPN po celou dobu oddělenou, protože tunel mění, kdo může požadavek vidět, a nikdy se nemění, zda je požadavek šifrovaný. Do tiketu se má vložit řádek, že na prvním požadavku záleží a přesměrování je pouze potvrzením již odeslaného požadavku.