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 पनि अलग हुन्छ: क्लाइन्ट प्रमाणपत्र दिनुले प्रयोगकर्तानाम/पासवर्ड प्रमाणहरू दिँदैन।