HTTP proxy နဲ့ HTTPS proxy — အမည်တပ်ထားတာက ဘာကိုဆိုလိုသလဲ
HTTPS ဝက်ဘ်ဆိုက်ဆီ tunnel ဖွင့်ပေးသည့် HTTP proxy နှင့် proxy ကိုယ်တိုင်ဆီသို့ ချိတ်ဆက်မှုကို စာဝှက်ပေးသည့် HTTPS proxy တို့၏ ကွာခြားချက်ကို သိရှိပါ။
Proxy listener ၏ မှတ်တမ်းတွင် ဖော်ပြထားသော scheme ကို သုံးပါ။ HTTP proxy စာရင်းမှ ရွေးချယ်ရာတွင် client ကို မသတ်မှတ်မီ listener ၏ scheme ကို အတည်ပြုပါ။ HTTPS ဝက်ဘ်ဆိုက်အတွက် http://proxy.example:8080 ကို သုံးနိုင်ပါသည်။ ထိုတန်ဖိုးကို https:// ဟု ပြောင်းခြင်းက proxy ဆီသို့ အခြားပုံစံဖြင့် ချိတ်ဆက်ရန် တောင်းဆိုခြင်းဖြစ်သည်။
| Proxy URL | ဝက်ဘ်ဆိုက် URL | ချိတ်ဆက်မှု |
|---|---|---|
http://proxy.example:8080 | http://example.com/ | Proxy နှင့် ဦးတည်ရာနှစ်ခုစလုံးဆီ စာဝှက်မထားသော HTTP။ |
http://proxy.example:8080 | https://example.com/ | Proxy ဆီ HTTP CONNECT ပို့ပြီးနောက် tunnel မှတစ်ဆင့် ဦးတည်ရာနှင့် TLS ချိတ်ဆက်ခြင်း။ |
https://proxy.example:8443 | https://example.com/ | Proxy ဆီ TLS ချိတ်ဆက်ပြီး ထိုချိတ်ဆက်မှုအတွင်း ဦးတည်ရာဆီသွားသည့် tunnel ကို သယ်ဆောင်ခြင်း။ |
CONNECT ကို ခွင့်ပြုသော ပုံမှန် HTTP listener အတွက် ဤသတ်မှတ်ချက်သည် ကိုက်ညီပါသည်။
curl --proxy http://127.0.0.1:8080 https://example.com/Proxy က tunnel ကို လက်ခံပြီးမှ ဝက်ဘ်ဆိုက်နှင့် TLS handshake ဖြစ်ပေါ်သည်။ Proxy URL ကို https:// ဟု ပြောင်းသော်လည်း listener က စာဝှက်မထားသော HTTP ကိုသာ နားလည်ပါက ဝက်ဘ်ဆိုက်ကို မဆက်သွယ်ရသေးမီ proxy နှင့် TLS ညှိနှိုင်းမှု ပျက်ကွက်နိုင်သည်။
Proxy အထိ TLS သုံးခြင်းက ဘာထပ်ရသလဲ
TLS အသုံးပြုသော proxy သည် client နှင့် proxy အကြား လမ်းပိုင်းကို ထိုလမ်းကြောင်းပေါ်မှ မဝင်ရောက်မပြောင်းလဲဘဲ နားထောင်နေသူများထံမှ ကာကွယ်ပေးသည်။ CONNECT အပြန်အလှန်ဖလှယ်မှုနှင့် proxy အထောက်အထားစစ်ဆေးမှုတို့လည်း ပါဝင်သည်။ Proxy ကို လည်ပတ်သူက ချိတ်ဆက်မှုကို ဆက်လက်ကိုင်တွယ်ပြီး tunnel ၏ ဦးတည်ရာကိုလည်း သိနေဆဲဖြစ်သည်။ Client နှင့် listener နှစ်ခုစလုံးက ဤပုံစံကို ပံ့ပိုးရမည်။
curl --proxy https://proxy.example:8443 https://example.com/ဝန်ဆောင်မှု၏ တကယ့် hostname ကို သုံးပါ။ Certificate သည် ထိုအမည်နှင့် ကိုက်ညီပြီး ယုံကြည်စိတ်ချရရမည်။ ဦးတည်ရာနှင့် port ကန့်သတ်ချက်များသည် ဆက်လက်သက်ရောက်သည်။
နှစ်ဖက်စလုံးတွင် HTTPS သုံးပါက certificate စစ်ဆေးမှု နှစ်ခုရှိသည်။ curl တွင် သီးခြားစီ သတ်မှတ်နိုင်သည်။
curl --proxy https://proxy.example:8443 --proxy-cacert proxy-ca.pem --cacert origin-ca.pem https://example.com/--proxy-cacert က proxy အတွက် ယုံကြည်မှုကို သတ်မှတ်ပြီး --cacert က ဦးတည်ရာအတွက် သတ်မှတ်သည်။ လိုအပ်ပါက စီမံခန့်ခွဲသူပေးသော certificate bundle များကို သုံးပါ။ စနစ်၏ ယုံကြည်မှုဆိုင်ရာ သတ်မှတ်ချက်များက လုံလောက်ပြီးသား ဖြစ်နိုင်သည်။ တစ်ခုခု မပြောင်းမီ မည်သည့် handshake ပျက်ကွက်ခဲ့သည်ကို ခွဲခြားပါ။
Proxy စာရင်းတစ်ခု၏ “HTTPS” အညွှန်းက endpoint သည် CONNECT စမ်းသပ်မှု အောင်မြင်ခဲ့သည်ဟုသာ ဆိုလိုနိုင်သည်။ စာရင်းက ၎င်း၏ စမ်းသပ်ပုံကို မဖော်ပြပါက ထိုအညွှန်းတစ်ခုတည်းဖြင့် listener က http:// သို့မဟုတ် https:// ကို မျှော်လင့်ထားသလား မသိနိုင်ပါ။