Používejte schéma uvedené v dokumentaci naslouchajícího rozhraní proxy. Při výběru kandidátů ze seznamu HTTP proxy ověřte toto schéma ještě před nastavením klienta. Web HTTPS může používat http://proxy.example:8080; změnou této hodnoty na https:// požadujete jiný druh spojení s proxy.

URL proxyURL webuSpojení
http://proxy.example:8080http://example.com/Nešifrované HTTP k proxy i k cíli.
http://proxy.example:8080https://example.com/HTTP CONNECT k proxy a poté TLS k cíli přes tunel.
https://proxy.example:8443https://example.com/TLS k proxy; tunel k cíli je přenášen uvnitř tohoto spojení.

Pro běžné naslouchající rozhraní HTTP, které povoluje CONNECT, je toto nastavení konzistentní:

curl --proxy http://127.0.0.1:8080 https://example.com/

TLS handshake s webem proběhne až poté, co proxy přijme tunel. Pokud změníte URL proxy na https://, ale rozhraní rozumí pouze nešifrovanému HTTP, může vyjednávání TLS s proxy selhat ještě před kontaktováním webu.

Co přidává TLS mezi klientem a proxy

Proxy s podporou TLS chrání spojení mezi klientem a proxy, včetně výměny CONNECT a autentizace u proxy, před pasivním odposlechem na této trase. Provozovatel proxy spojení stále zpracovává a zná cíl tunelu. Tento režim musí podporovat klient i naslouchající rozhraní:

curl --proxy https://proxy.example:8443 https://example.com/

Použijte skutečné jméno hostitele služby. Certifikát mu musí odpovídat a musí být důvěryhodný. Omezení cílů a portů zůstávají v platnosti.

Při HTTPS na obou stranách probíhají dvě kontroly certifikátů. curl umožňuje nastavit obě ověření odděleně:

curl --proxy https://proxy.example:8443 --proxy-cacert proxy-ca.pem --cacert origin-ca.pem https://example.com/

--proxy-cacert určuje důvěru pro proxy, --cacert pro cíl. Podle potřeby použijte sady certifikátů od správce; systémová nastavení důvěry mohou už stačit. Před změnou kteréhokoli nastavení zjistěte, který handshake selhal.

Označení „HTTPS“ v seznamu proxy může znamenat pouze to, že koncový bod prošel testem CONNECT. Pokud seznam nevysvětluje svůj test, samotné označení neříká, zda naslouchající rozhraní očekává http://, nebo https://.

Související články