Proxy HTTP e HTTPS: che cosa indica l’etichetta
Distingui un proxy HTTP che crea tunnel verso siti HTTPS da un proxy HTTPS che cifra anche la connessione al proxy stesso.
Usa lo schema indicato nella documentazione del listener del proxy. Quando scegli i candidati dalla lista dei proxy HTTP, verifica lo schema del listener prima di configurare il client. Per un sito HTTPS puoi usare http://proxy.example:8080; sostituire quel valore con https:// richiede un diverso tipo di connessione al proxy.
| URL del proxy | URL del sito | Connessione |
|---|---|---|
http://proxy.example:8080 | http://example.com/ | HTTP in chiaro verso il proxy e verso la destinazione. |
http://proxy.example:8080 | https://example.com/ | HTTP CONNECT verso il proxy, poi TLS con la destinazione attraverso il tunnel. |
https://proxy.example:8443 | https://example.com/ | TLS verso il proxy, con il tunnel per la destinazione trasportato all’interno della connessione. |
Per un normale listener HTTP che consente CONNECT, questa configurazione è coerente:
curl --proxy http://127.0.0.1:8080 https://example.com/L’handshake TLS con il sito avviene dopo che il proxy ha accettato il tunnel. Se cambi l’URL del proxy in https:// ma il listener comprende solo HTTP in chiaro, la negoziazione TLS con il proxy può fallire prima ancora di contattare il sito.
Che cosa aggiunge TLS nella connessione al proxy
Un proxy con TLS protegge il collegamento tra client e proxy, compresi lo scambio CONNECT e l’autenticazione al proxy, dall’ascolto passivo lungo quel tratto. Il gestore del proxy continua a elaborare la connessione e conosce la destinazione del tunnel. Sia il client sia il listener devono supportare questa modalità:
curl --proxy https://proxy.example:8443 https://example.com/Usa il vero nome host del servizio: il certificato deve corrispondere al nome ed essere attendibile. Restano valide le restrizioni su destinazioni e porte.
Con HTTPS su entrambi i lati, si effettuano due verifiche dei certificati. curl consente di configurare separatamente le due verifiche:
curl --proxy https://proxy.example:8443 --proxy-cacert proxy-ca.pem --cacert origin-ca.pem https://example.com/--proxy-cacert imposta la fiducia per il proxy; --cacert per la destinazione. Se necessario, usa i bundle di certificati forniti dall’amministratore; le impostazioni di fiducia del sistema potrebbero già bastare. Prima di modificare l’una o l’altra, individua quale handshake è fallito.
L’etichetta “HTTPS” di una lista di proxy può indicare soltanto che l’endpoint ha superato un test CONNECT. A meno che la lista non descriva il test, l’etichetta da sola non rivela se il listener si aspetta http:// oppure https://.