«200 Connection Established» indica che il proxy accetta un tunnel. Il sito non ha ancora restituito una pagina. Seguono TLS con la destinazione e poi la richiesta HTTPS vera e propria.

Dalla connessione al proxy alla risposta del sito

  1. Il client si collega all'endpoint del proxy.
  2. Chiede al proxy di collegarsi a un host e a una porta di destinazione.
  3. Il proxy accetta o rifiuta la richiesta.
  4. Dopo l'accettazione, il client negozia TLS con la destinazione attraverso il tunnel.
  5. Il client invia la richiesta HTTPS e riceve la risposta del sito all'interno di TLS.

Una connessione al proxy rifiutata, un tunnel negato e un errore di certificato si verificano in punti diversi della sequenza. Trova l'ultimo passaggio completato prima di cambiare le impostazioni.

Lo scambio CONNECT

In HTTP/1.1, uno scambio semplificato è questo:

CONNECT example.com:443 HTTP/1.1
Host: example.com:443

HTTP/1.1 200 Connection Established

La destinazione della richiesta è un host e una porta, senza il percorso o i parametri di query del sito. Dopo una risposta CONNECT riuscita, la connessione trasporta i byte del tunnel. Per una destinazione HTTPS, lo scambio successivo del client è l'handshake TLS.

Leggi il codice numerico invece di cercare una corrispondenza con la frase esplicativa in inglese. I proxy possono usare testi diversi per lo stesso stato.

Osservarlo con curl

Per un proxy HTTP sulla porta locale 8080:

curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/

Sostituisci l'indirizzo di ascolto con il tuo endpoint; se cerchi candidati, consulta la lista dei proxy HTTP e prova la voce scelta. L'elenco di esclusione vuoto assicura che questa invocazione selezioni il proxy. Cerca in ordine cronologico la connessione al proxy, la risposta CONNECT, la verifica del certificato di destinazione e la risposta del sito. Il testo preciso del log dipende dalla build di curl.

La destinazione può restituire 404, 429 o 500 dopo che il proxy ha accettato il tunnel. Può anche fallire durante TLS prima di restituire qualsiasi risposta HTTP.

Dove si è fermato?

OsservazioneCosa controllare dopo
La connessione al proxy viene rifiutataIndirizzo del proxy, porta di ascolto, processo e accesso alla rete.
Il proxy restituisce 407L'account del proxy e lo schema di autenticazione.
Il proxy rifiuta una destinazione o una portaPolitica di accesso e destinazioni CONNECT consentite.
Il tunnel si apre, poi la verifica TLS fallisceNome della destinazione, archivio dei certificati attendibili, orologio ed eventuale intercettazione TLS gestita.
TLS riesce e il sito restituisce un erroreLa risposta del sito.

Per confrontare, mantieni fisso uno dei due lati: prova un'altra destinazione attraverso lo stesso proxy oppure confronta la stessa destinazione su un percorso diretto consentito.

Il tunnel ha comunque un gestore

Il proxy conosce la destinazione CONNECT e gestisce tempi e volume del traffico. Il normale TLS end-to-end protegge il contenuto applicativo del sito da un proxy che non termina quella sessione TLS. Un proxy di intercettazione gestito, considerato attendibile dal client, implica un diverso rapporto di fiducia.

Articoli correlati