urllib3 ର ପ୍ରକ୍ସି ଏବଂ ୱେବସାଇଟ ପାଇଁ ଅଲଗା TLS ପ୍ରସଙ୍ଗ ବ୍ୟବହାର କରନ୍ତୁ
HTTPS ପ୍ରକ୍ସିର କ୍ଲାଏଣ୍ଟ ପ୍ରମାଣପତ୍ରକୁ proxy_ssl_context ରେ ଲୋଡ କରନ୍ତୁ, ଗନ୍ତବ୍ୟର ବିଶ୍ୱାସ ଏବଂ ଯେକୌଣସି ଗନ୍ତବ୍ୟ କ୍ଲାଏଣ୍ଟ ପରିଚୟ ssl_context ରେ ରଖନ୍ତୁ।
import ssl
import urllib3
proxy_tls = ssl.create_default_context(cafile='proxy-roots.pem')
proxy_tls.load_cert_chain('proxy-client.pem', 'proxy-client.key')
origin_tls = ssl.create_default_context()
with urllib3.ProxyManager(
'https://proxy.example:8443',
proxy_ssl_context=proxy_tls,
ssl_context=origin_tls,
timeout=urllib3.Timeout(connect=5, read=15),
) as http:
response = http.request('GET', 'https://service.example/data')ପ୍ରକୃତ ଅନୁମୋଦିତ ଫାଇଲଗୁଡ଼ିକ ବ୍ୟବହାର କରନ୍ତୁ। proxy-roots.pem ମଧ୍ୟସ୍ଥକୁ ଯାଞ୍ଚ କରେ; proxy-client.pem ଏବଂ ଏହାର ମେଳ ଖାଉଥିବା ବ୍ୟକ୍ତିଗତ ଚାବି ଏହି କ୍ଲାଏଣ୍ଟକୁ ସେହି ମଧ୍ୟସ୍ଥ ସମ୍ମୁଖରେ ଚିହ୍ନଟ କରେ। origin_tls ଗନ୍ତବ୍ୟର ଅଲଗା ବିଶ୍ୱାସ ନୀତି ରଖେ।
ପ୍ରକ୍ସି URL ର https ଯୋଜନା ସେହି ପ୍ରଥମ TLS ଆଦାନପ୍ରଦାନ ପାଇଁ ଆବଶ୍ୟକ। HTTPS ଲକ୍ଷ୍ୟ ପାଇଁ, urllib3 ପରେ ବାହ୍ୟ TLS ସେସନ ଭିତରେ CONNECT ପଠାଏ ଏବଂ ସୁଡଙ୍ଗ ମାଧ୍ୟମରେ ୱେବସାଇଟ TLS କରେ।
ଯଦି ୱେବସାଇଟ ମଧ୍ୟ କ୍ଲାଏଣ୍ଟ ପ୍ରମାଣପତ୍ର ଚାହେଁ, ଏହାକୁ origin_tls ରେ ରଖନ୍ତୁ। ସେଠାରେ ପ୍ରକ୍ସି ପରିଚୟ ପୁନଃ ବ୍ୟବହାର କଲେ ଅନ୍ୟ ଏକ ସଂଯୋଗ ପ୍ରମାଣିତ ହେବ।
HTTPS ବହନ କରୁଥିବା ସାଧାରଣ HTTP ପ୍ରକ୍ସିରେ ବାହ୍ୟ TLS ହ୍ୟାଣ୍ଡସେକ ନାହିଁ। ଅତିରିକ୍ତ HTTP 407 ମଧ୍ୟ ଅଲଗା: କ୍ଲାଏଣ୍ଟ ପ୍ରମାଣପତ୍ର ଦେବା ବ୍ୟବହାରକାରୀ ନାମ/ପାସୱାର୍ଡ ପ୍ରମାଣପତ୍ର ଦିଏ ନାହିଁ।