HTTP CONNECT: پروکسی HTTP چطور HTTPS را عبور میدهد؟
مسیر یک درخواست HTTPS را در پروکسی HTTP دنبال کنید، پاسخ CONNECT را از پاسخ سرور مبدأ جدا کنید و محل شکست تونل را پیدا کنید.
«200 Connection Established» یعنی پروکسی تونل را پذیرفته است. وبسایت هنوز صفحهای برنگردانده. پس از آن TLS با مقصد برقرار میشود و سپس خود درخواست HTTPS میآید.
از اتصال به پروکسی تا پاسخ وبسایت
- کلاینت به نقطهٔ پایانی پروکسی متصل میشود.
- از پروکسی میخواهد به میزبان و درگاه مقصد متصل شود.
- پروکسی این درخواست را میپذیرد یا رد میکند.
- پس از پذیرش، کلاینت از داخل تونل با مقصد بر سر TLS مذاکره میکند.
- کلاینت درخواست HTTPS را میفرستد و پاسخ وبسایت را درون TLS دریافت میکند.
رد اتصال به پروکسی، رد تونل و خطای گواهی در نقاط متفاوت این توالی رخ میدهند. پیش از تغییر تنظیمات، آخرین مرحلهٔ تکمیلشده را پیدا کنید.
تبادل CONNECT
در HTTP/1.1، شکل سادهشدهٔ تبادل چنین است:
CONNECT example.com:443 HTTP/1.1
Host: example.com:443
HTTP/1.1 200 Connection Established
هدف درخواست یک میزبان و درگاه است، بدون مسیر یا پارامترهای پرسوجوی وبسایت. پس از پاسخ موفق CONNECT، اتصال بایتهای تونل را حمل میکند. برای مقصد HTTPS، تبادل بعدی کلاینت دستدهی TLS است.
کد عددی وضعیت را بخوانید، نه اینکه دنبال تطابق عبارت توضیحی انگلیسی باشید. پروکسیها ممکن است برای یک وضعیت از متنهای متفاوت استفاده کنند.
مشاهده با curl
برای یک پروکسی HTTP روی درگاه محلی 8080:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/نشانی شنود را با نقطهٔ پایانی خود جایگزین کنید؛ اگر به گزینه نیاز دارید، فهرست پروکسیهای HTTP را ببینید و مورد انتخابی را آزمایش کنید. فهرست خالی دورزدن تضمین میکند که این فراخوانی پروکسی را انتخاب کند. بهترتیب زمانی دنبال اتصال به پروکسی، پاسخ CONNECT، تأیید گواهی مقصد و پاسخ وبسایت بگردید. متن دقیق گزارش به ساخت curl بستگی دارد.
مقصد ممکن است پس از پذیرش تونل توسط پروکسی، 404، 429 یا 500 برگرداند. همچنین ممکن است هنگام TLS و پیش از هرگونه پاسخ HTTP شکست بخورد.
کجا متوقف شد؟
| مشاهده | بررسی بعدی |
|---|---|
| اتصال به پروکسی رد میشود | نشانی پروکسی، درگاه شنود، فرایند و دسترسی شبکه. |
| پروکسی 407 برمیگرداند | حساب پروکسی و روش احراز هویت. |
| پروکسی مقصد یا درگاهی را رد میکند | سیاست دسترسی و مقصدهای مجاز CONNECT. |
| تونل باز میشود، سپس تأیید TLS شکست میخورد | نام مقصد، مخزن اعتماد، ساعت و هرگونه رهگیری مدیریتشدهٔ TLS. |
| TLS موفق است و وبسایت خطا برمیگرداند | پاسخ وبسایت. |
برای مقایسه، یک طرف را ثابت نگه دارید: مقصد دیگری را با همان پروکسی امتحان کنید یا همان مقصد را از مسیر مستقیمِ مجاز مقایسه کنید.
تونل همچنان اپراتور دارد
پروکسی مقصد CONNECT را میداند و زمانبندی و حجم ترافیک را پردازش میکند. TLS معمولیِ سرتاسری، محتوای کاربردی وبسایت را از پروکسیای که آن نشست TLS را در خود خاتمه نمیدهد محافظت میکند. یک پروکسی رهگیری مدیریتشده که کلاینت به آن اعتماد دارد، رابطهٔ اعتماد متفاوتی دارد.