ለ 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 የመዳረሻውን የተለየ የእምነት ፖሊሲ ይጠብቃል።
የፕሮክሲው ዩአርኤል https መርሃ ግብር ለዚያ የመጀመሪያ TLS ልውውጥ አስፈላጊ ነው። ለHTTPS ግብ urllib3 ከዚያ CONNECT ን በውጫዊው TLS ክፍለ ጊዜ ውስጥ ይልካል እና የዌብሳይት TLS ን በቱነሉ በኩል ያከናውናል።
ዌብሳይቱም የደንበኛ ሰርተፊኬት ከፈለገ፣ በorigin_tls ላይ ያስቀምጡት። የፕሮክሲውን ማንነት እዚያ እንደገና መጠቀም የተለየ ግንኙነትን ያረጋግጣል።
HTTPS የሚሸከም ተራ HTTP ፕሮክሲ ውጫዊ የTLS እጅ መጨበጫ የለውም። ተጨማሪ HTTP 407 እንዲሁ የተለየ ነው፦ የደንበኛ ሰርተፊኬት ማቅረብ የተጠቃሚ ስም/የመለያ ቁልፍ ምስክርነቶችን አይሰጥም።