Neizdevušās proxy CONNECT atbildes satura pārbaude ar curl
Nosūtiet pareizi izveidotu diagnostikas CONNECT tieši uz HTTP starpniekserveri un saglabājiet HTTP kļūdas galvenes un saturu atsevišķi.
Starpniekserveris, kas noraida CONNECT, var atgriezt HTTP kļūdas dokumentu, kurā skaidrota tā politika vai turpmākā savienojuma kļūme. Ja diagnostika atļauta pret parastu HTTP starpniekserveri, curl var nosūtīt šo pieprasījumu tieši un saglabāt atbildi:
curl --proxy '' --http1.1 --max-time 10 \
--request CONNECT \
--request-target service.example:443 \
--header 'Host: service.example:443' \
--dump-header tunnel.headers \
--output tunnel.body \
http://proxy.example:8080/
Galīgais URL adresē starpniekservera klausītāju. Ja atļauts salīdzināt publiskos starpniekserverus, HTTP starpniekserveru saraksts piedāvā kandidātus šim klausītāja URL. --request nodrošina metodes marķieri; --request-target nodrošina CONNECT pilnvaru. To atdalīšana rada CONNECT service.example:443 HTTP/1.1.
Tukšā starpniekservera opcija neļauj curl virzīt šo diagnostiku caur citu mantotu starpniekserveri. Komanda apzināti izlaiž --fail, lai HTTP kļūdas dokumentu varētu saglabāt.
Mēģinājums bez autentifikācijas var apstāties pie 407, pirms tas sasniedz izmeklējamo kļūmi. Atkārtojot autentificētu pieprasījumu, izmantojiet starpniekservera paredzēto autentifikācijas kārtību.
Tas ir kļūmju atbilžu pārbaudei. Ja starpniekserveris atgriež 2xx, savienojums kļūst par tuneli, nevis parastu HTTP satura pārsūtīšanu. Šī diagnostika ar pielāgotu metodi neuzsāk galamērķa TLS apmaiņu un var sasniegt savu laika ierobežojumu pieņemtā atvērtā tunelī.
Faktiskai HTTPS iegūšanai izmantojiet parasto --proxy pieprasījumu plūsmu. Glabājiet diagnostikas statusu un saturu kopā ar konkrēto starpniekserveri un mērķi.