HTTP CONNECT: Cara Proksi HTTP Mengendalikan HTTPS
Ikuti permintaan HTTPS melalui proksi HTTP, bezakan respons CONNECT daripada respons pelayan asal, dan kenal pasti tempat terowong gagal.
“200 Connection Established” bermaksud proksi menerima sebuah terowong. Laman web belum memulangkan halaman. Seterusnya ialah TLS dengan destinasi, diikuti permintaan HTTPS itu sendiri.
Daripada sambungan proksi kepada respons laman web
- Klien menyambung ke titik akhir proksi.
- Klien meminta proksi menyambung ke hos dan port destinasi.
- Proksi menerima atau menolak permintaan itu.
- Selepas diterima, klien merundingkan TLS dengan destinasi melalui terowong.
- Klien menghantar permintaan HTTPS dan menerima respons laman web di dalam TLS.
Sambungan proksi yang ditolak, terowong yang ditolak dan ralat sijil berlaku pada titik berlainan dalam urutan ini. Cari langkah terakhir yang selesai sebelum mengubah tetapan.
Pertukaran CONNECT
Dalam HTTP/1.1, pertukaran ringkas adalah seperti berikut:
CONNECT example.com:443 HTTP/1.1
Host: example.com:443
HTTP/1.1 200 Connection Established
Sasaran permintaan ialah hos dan port, tanpa laluan atau pertanyaan laman web. Selepas respons CONNECT berjaya, sambungan membawa bait terowong. Bagi destinasi HTTPS, pertukaran klien yang berikutnya ialah jabat tangan TLS.
Baca status berangka dan bukannya memadankan frasa sebab dalam bahasa Inggeris. Proksi boleh menggunakan teks berbeza bagi status yang sama.
Perhatikan dengan curl
Untuk proksi HTTP pada port setempat 8080:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/Gantikan alamat pendengar dengan titik akhir anda; jika memerlukan calon, lihat senarai proksi HTTP dan uji entri yang dipilih. Senarai pintasan kosong memastikan panggilan ini memilih proksi. Mengikut urutan masa, cari sambungan proksi, respons CONNECT, pengesahan sijil destinasi dan respons laman web. Teks log yang tepat bergantung pada binaan curl.
Destinasi boleh memulangkan 404, 429 atau 500 selepas proksi menerima terowong. Kegagalan juga boleh berlaku semasa TLS sebelum sebarang respons HTTP dipulangkan.
Di mana ia terhenti?
| Pemerhatian | Siasatan berikutnya |
|---|---|
| Sambungan ke proksi ditolak | Alamat proksi, port pendengar, proses dan akses rangkaian. |
| Proksi memulangkan 407 | Akaun proksi dan skim pengesahan. |
| Proksi menolak destinasi atau port | Dasar akses dan destinasi CONNECT yang dibenarkan. |
| Terowong terbuka, kemudian pengesahan TLS gagal | Nama destinasi, stor kepercayaan, jam dan sebarang pemintasan TLS terurus. |
| TLS berjaya dan laman web memulangkan ralat | Respons laman web. |
Untuk perbandingan, kekalkan satu pihak: cuba destinasi lain melalui proksi yang sama, atau bandingkan destinasi yang sama melalui laluan terus yang dibenarkan.
Terowong masih mempunyai pengendali
Proksi mengetahui destinasi CONNECT serta mengendalikan pemasaan dan jumlah trafik. TLS hujung ke hujung biasa melindungi kandungan aplikasi laman web daripada proksi yang tidak menamatkan sesi TLS itu. Proksi pemintasan terurus yang dipercayai klien mempunyai hubungan kepercayaan yang berbeza.