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

सम्बन्धित लेखहरू