HTTP CONNECT: HTTP proxy HTTPS'i nasıl işler?
Bir HTTPS isteğini HTTP proxy üzerinden izleyin, CONNECT yanıtını kaynak sunucunun yanıtından ayırın ve tünelin nerede başarısız olduğunu bulun.
“200 Connection Established”, proxy'nin bir tüneli kabul ettiği anlamına gelir. Web sitesi henüz bir sayfa döndürmemiştir. Ardından hedefle TLS ve sonrasında asıl HTTPS isteği gelir.
Proxy bağlantısından web sitesi yanıtına
- İstemci, proxy uç noktasına bağlanır.
- Proxy'den bir hedef ana makineye ve porta bağlanmasını ister.
- Proxy bu isteği kabul eder veya reddeder.
- Kabulden sonra istemci tünel üzerinden hedefle TLS anlaşması yapar.
- İstemci HTTPS isteğini gönderir ve web sitesinin yanıtını TLS içinde alır.
Reddedilen proxy bağlantısı, reddedilen tünel ve sertifika hatası bu sıranın farklı noktalarında oluşur. Ayarları değiştirmeden önce son tamamlanan adımı bulun.
CONNECT alışverişi
HTTP/1.1'de basitleştirilmiş bir alışveriş şöyledir:
CONNECT example.com:443 HTTP/1.1
Host: example.com:443
HTTP/1.1 200 Connection Established
İsteğin hedefi, web sitesinin yolu veya sorgusu olmadan bir ana makine ve porttur. Başarılı CONNECT yanıtından sonra bağlantı tünel baytlarını taşır. HTTPS hedefinde istemcinin sonraki alışverişi TLS el sıkışmasıdır.
İngilizce açıklama ifadesini eşleştirmek yerine sayısal durumu okuyun. Proxy'ler aynı durum için farklı metinler kullanabilir.
curl ile izleyin
Yerel 8080 portundaki bir HTTP proxy için:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/Dinleme adresini kendi uç noktanızla değiştirin. Aday gerekiyorsa HTTP proxy listesine göz atın ve seçtiğiniz kaydı test edin. Boş atlama listesi, bu çağrının proxy'yi seçmesini sağlar. Zaman sırasıyla proxy bağlantısını, CONNECT yanıtını, hedef sertifikasının doğrulanmasını ve web sitesi yanıtını arayın. Günlükteki kesin ifadeler curl derlemesine bağlıdır.
Proxy tüneli kabul ettikten sonra hedef 404, 429 veya 500 döndürebilir. Herhangi bir HTTP yanıtı dönmeden TLS sırasında da başarısız olabilir.
Nerede durdu?
| Gözlem | Sonraki inceleme |
|---|---|
| Proxy bağlantısı reddediliyor | Proxy adresi, dinleme portu, süreç ve ağ erişimi. |
| Proxy 407 döndürüyor | Proxy hesabı ve kimlik doğrulama şeması. |
| Proxy bir hedefi veya portu reddediyor | Erişim politikası ve izin verilen CONNECT hedefleri. |
| Tünel açılıyor, ardından TLS doğrulaması başarısız oluyor | Hedef adı, güven deposu, saat ve varsa yönetilen TLS müdahalesi. |
| TLS başarılı oluyor ve web sitesi hata döndürüyor | Web sitesinin yanıtı. |
Karşılaştırırken bir tarafı sabit tutun: aynı proxy üzerinden başka bir hedef deneyin veya aynı hedefi izin verilen doğrudan bir rota üzerinden karşılaştırın.
Tünelin yine de bir işletmecisi var
Proxy, CONNECT hedefini bilir ve trafiğin zamanlamasını ve hacmini işler. Olağan uçtan uca TLS, web sitesinin uygulama içeriğini bu TLS oturumunu sonlandırmayan bir proxy'den korur. İstemcinin güvendiği yönetilen bir müdahale proxy'si, farklı bir güven ilişkisine sahiptir.