HTTP CONNECT: Proxy HTTP xử lý HTTPS như thế nào?
Theo dõi yêu cầu HTTPS qua proxy HTTP, phân biệt phản hồi CONNECT với phản hồi của máy chủ gốc và tìm vị trí đường hầm gặp lỗi.
“200 Connection Established” nghĩa là proxy chấp nhận đường hầm. Trang web vẫn chưa trả về trang nào. Tiếp đó là TLS với đích, rồi mới đến chính yêu cầu HTTPS.
Từ kết nối proxy đến phản hồi của trang web
- Máy khách kết nối đến điểm cuối của proxy.
- Nó yêu cầu proxy kết nối đến máy chủ và cổng đích.
- Proxy chấp nhận hoặc từ chối yêu cầu đó.
- Sau khi được chấp nhận, máy khách thương lượng TLS với đích qua đường hầm.
- Máy khách gửi yêu cầu HTTPS và nhận phản hồi của trang web bên trong TLS.
Kết nối proxy bị từ chối, đường hầm bị từ chối và lỗi chứng chỉ xảy ra ở những điểm khác nhau trong chuỗi này. Tìm bước cuối đã hoàn tất trước khi đổi thiết lập.
Trao đổi CONNECT
Trong HTTP/1.1, một trao đổi rút gọn như sau:
CONNECT example.com:443 HTTP/1.1
Host: example.com:443
HTTP/1.1 200 Connection Established
Đích của yêu cầu là máy chủ và cổng, không có đường dẫn hay tham số truy vấn của trang web. Sau phản hồi CONNECT thành công, kết nối mang các byte của đường hầm. Với đích HTTPS, trao đổi tiếp theo của máy khách là bắt tay TLS.
Đọc mã trạng thái dạng số thay vì so khớp câu giải thích bằng tiếng Anh. Các proxy có thể dùng văn bản khác nhau cho cùng một trạng thái.
Quan sát bằng curl
Với proxy HTTP trên cổng cục bộ 8080:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/Thay địa chỉ lắng nghe bằng điểm cuối của bạn; nếu cần ứng viên, hãy xem danh sách proxy HTTP rồi thử mục đã chọn. Danh sách bỏ qua rỗng bảo đảm lần gọi này chọn proxy. Theo thứ tự thời gian, tìm kết nối proxy, phản hồi CONNECT, bước xác minh chứng chỉ đích và phản hồi của trang web. Câu chữ chính xác trong nhật ký phụ thuộc bản dựng curl.
Đích có thể trả về 404, 429 hoặc 500 sau khi proxy chấp nhận đường hầm. Nó cũng có thể lỗi trong TLS trước khi trả về bất kỳ phản hồi HTTP nào.
Đã dừng ở đâu?
| Quan sát | Kiểm tra tiếp |
|---|---|
| Kết nối đến proxy bị từ chối | Địa chỉ proxy, cổng lắng nghe, tiến trình và quyền truy cập mạng. |
| Proxy trả về 407 | Tài khoản proxy và cơ chế xác thực. |
| Proxy từ chối một đích hoặc cổng | Chính sách truy cập và các đích CONNECT được phép. |
| Đường hầm mở, sau đó xác minh TLS thất bại | Tên đích, kho tin cậy, đồng hồ và hoạt động chặn bắt TLS được quản lý nếu có. |
| TLS thành công và trang web trả về lỗi | Phản hồi của trang web. |
Khi so sánh, giữ nguyên một phía: thử đích khác qua cùng proxy, hoặc so sánh cùng đích qua tuyến trực tiếp được phép.
Đường hầm vẫn có bên vận hành
Proxy biết đích CONNECT và xử lý thời điểm cũng như lưu lượng dữ liệu. TLS đầu cuối thông thường bảo vệ nội dung ứng dụng của trang web trước proxy không kết thúc phiên TLS đó. Một proxy chặn bắt được quản lý mà máy khách tin cậy có mô hình tin cậy khác.