HTTP-proxy of HTTPS-proxy: wat betekent het label?
Het verschil tussen een HTTP-proxy die HTTPS-websites via een tunnel bereikt en een HTTPS-proxy die de verbinding met de proxy zelf versleutelt.
Gebruik het schema dat voor de luisterende aansluiting van de proxy is gedocumenteerd. Kies je kandidaten uit de lijst met HTTP-proxy’s, controleer dat schema dan voordat je de client instelt. Voor een HTTPS-website kun je http://proxy.example:8080 gebruiken. Door die waarde in https:// te veranderen, vraag je om een ander soort verbinding met de proxy.
| Proxy-URL | Website-URL | Verbinding |
|---|---|---|
http://proxy.example:8080 | http://example.com/ | Onversleuteld HTTP naar de proxy en de bestemming. |
http://proxy.example:8080 | https://example.com/ | HTTP CONNECT naar de proxy, daarna TLS met de bestemming door de tunnel. |
https://proxy.example:8443 | https://example.com/ | TLS naar de proxy, waarbij de tunnel naar de bestemming binnen die verbinding loopt. |
Voor een gewone HTTP-luisteraansluiting die CONNECT toestaat, klopt deze combinatie:
curl --proxy http://127.0.0.1:8080 https://example.com/De TLS-handshake met de website vindt plaats nadat de proxy de tunnel heeft geaccepteerd. Verander je de proxy-URL in https:// terwijl de proxy alleen onversleuteld HTTP begrijpt, dan kan de TLS-onderhandeling met de proxy mislukken voordat de website wordt benaderd.
Wat TLS naar de proxy toevoegt
Een proxy met TLS beschermt het traject tussen client en proxy, inclusief de CONNECT-uitwisseling en proxy-authenticatie, tegen passief meeluisteren op dat traject. De proxybeheerder verwerkt de verbinding nog steeds en kent de bestemming van de tunnel. Zowel de client als de luisterende aansluiting moeten deze modus ondersteunen:
curl --proxy https://proxy.example:8443 https://example.com/Gebruik de echte hostnaam van de dienst: het certificaat moet daarmee overeenkomen en vertrouwd worden. Beperkingen voor bestemmingen en poorten blijven gelden.
Met HTTPS aan beide kanten zijn er twee certificaatcontroles. In curl kun je die afzonderlijk instellen:
curl --proxy https://proxy.example:8443 --proxy-cacert proxy-ca.pem --cacert origin-ca.pem https://example.com/--proxy-cacert bepaalt het vertrouwen voor de proxy; --cacert voor de bestemming. Gebruik waar nodig certificaatbundels van de beheerder; de vertrouwensinstellingen van het systeem kunnen al volstaan. Stel vast welke handshake is mislukt voordat je een van beide wijzigt.
Het label ‘HTTPS’ in een proxylijst kan alleen betekenen dat het eindpunt een CONNECT-test heeft doorstaan. Tenzij de lijst de test beschrijft, zegt dat label op zichzelf niet of de luisterende aansluiting http:// of https:// verwacht.