curl-ով ուսումնասիրել ձախողված proxy CONNECT պատասխանի մարմինը
Ճիշտ ձևավորված ախտորոշիչ CONNECT ուղարկեք ուղիղ HTTP վստահված սերվերին և HTTP ձախողման վերնագրերն ու մարմինը պահեք առանձին։
CONNECT-ը մերժող վստահված սերվերը կարող է վերադարձնել HTTP սխալի փաստաթուղթ, որը բացատրում է իր քաղաքականությունը կամ հետագա կապի ձախողումը։ Սովորական HTTP վստահված սերվերի դեմ թույլատրված ախտորոշման համար curl-ը կարող է այդ հարցումն ուղարկել ուղիղ և պահել պատասխանը.
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/
Վերջնական URL-ը հասցեագրում է վստահված սերվերի լսողին։ Հանրային վստահված սերվերների թույլատրված համեմատության համար HTTP վստահված սերվերների ցանկը թեկնածուներ է տրամադրում այդ լսողի URL-ի համար։ --request-ը տալիս է մեթոդի նշանը, --request-target-ը՝ CONNECT-ի լիազորությունը։ Դրանք առանձին պահելը ստեղծում է CONNECT service.example:443 HTTP/1.1։
Դատարկ վստահված սերվերի ընտրանքը թույլ չի տալիս curl-ին այս ախտորոշումն անցկացնել մեկ այլ ժառանգված վստահված սերվերի միջով։ Հրամանը միտումնավոր բաց է թողնում --fail-ը, որպեսզի HTTP սխալի փաստաթուղթը պահպանվի։
Առանց նույնականացման փորձը կարող է կանգ առնել 407-ի վրա՝ մինչև հետազոտվող ձախողմանը հասնելը։ Նույնականացված հարցումը վերարտադրելիս օգտագործեք վստահված սերվերի նախատեսած նույնականացման կարգը։
Սա ձախողման պատասխանները ուսումնասիրելու համար է։ Եթե վստահված սերվերը վերադարձնի 2xx, կապը դառնում է թունել՝ սովորական HTTP մարմնի փոխանցման փոխարեն։ Այս հատուկ մեթոդի ախտորոշումը չի սկսում նպատակակետի TLS փոխանակությունը և կարող է հասնել իր ժամային սահմանին ընդունված բաց թունելի վրա։
Իրական HTTPS բեռնման համար օգտագործեք սովորական --proxy հարցումների հոսքը։ Ախտորոշման կարգավիճակն ու մարմինը պահեք իրենց կոնկրետ վստահված սերվերի և թիրախի հետ։